A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1213842165 中级黑马   /  2015-11-12 21:37  /  619 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*结构体的特点*/
#include <stdio.h>

int add();

int main(){
   
    /*
     最基本的定义方式
    struct Person{
        char *name;
        int age;
    };
    struct Person per={"itcast",20};
    */
   
   
   
    /*
     第二种
     
    struct Person{
        char *name;
        int age;
    } per={"itheima",18};
     
    或
     
    struct Person{
        char *name;
        int age;
    } per;
    per.name="itheima";
    per.age=18;
      */
   
   
   
    /*正确.第三种方式--匿名类型结构体(*注意必须同时初始化变量)
     这种结构体定义方式,不能重用.--不推荐 了解就好.
     
    struct {
        char *name;
        int age;
    } per={"heima",19};
    struct {
        char *name;
        int age;
    } per1={"heima",19};
     */
   
   
    /*2. 同一作用域内不可重复定义结构体类型和结构变量.匿名类型结构体除外;
    struct Person{
        char *name;
        int age;
    };
     
     //错误,重名了.
    struct Person{
        char *name;
        int age;
        int a;
    };

    struct Person per1={"heima",19};
    struct Person per2={"itcast",19};
     */
   
   
    //struct Person per2={"itcast",19};
    add();
   
    return 0;
}

/*全局结构体*/
struct Person{
    char *name;
    int age;
    int a;
};

struct Person per1={"heima",19,8};


/*

3.可在函数内也可在函数外,效果及用法类似于局部变量和全局变量.也可嵌套定义.
4.可同时在函数内外定义同一个类型,使用同样遵循就近原则,结构体变量也是如此.

*/


int add(){
   
    struct Sun{
        char *name;
        int age;
        
    };
   
    /*嵌套定义.*/
    struct Person{
        char *name;
        int age;
        struct Sun baby;
        
    };
   
    struct Person per1={"heima",19,{"baby",1}};
    printf("name=%s--age=%d--a=%d\n",per1.name,per1.age,per1.baby.age);
   
   // printf("name=%s--age=%d--a=%d\n",per1.name,per1.age,per1.a);
   
    return 0;
   
}






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马