黑马程序员-C语言-结构体

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

结构体是一种数据类型,是构造类型的一种,里面可以存放不同的数据类型,用于封装不同的数据类型到一个结构中,方便使用
定义:1.定义结构体类型 struct 结构体类型
{数据类型1 名称;数据类型2 名称;…};

 struct Person{
        char *name;
        int age;
    };

以上就是定义了一个结构体类型,可以存放指针字符串 和int类型的数据; 定义2.定义结构体变量及赋值: struct 结构体类型 变量名={数据1,数据2….};

struct Person p1={"itheima",18};

以上就是创建了一个Person型的结构体变量 p1,并且赋值;

结构体使用方法
1.取值:变量名.结构体元素变量名

p1.name

以上就是取出变量p1 中name的值

2.赋值:变量名.结构体元素变量名=新值

p1.name="heima";

以上就是给变量p1 中name这个结构体元素变量赋值
结构体的特点

1.可在定义结构体类型同时定义结构体变量,可以定义匿名类型结构体

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}; 

2.同一个作用域内不可以重复定义结构体类型和结构体变量.匿名类型结构体除外

struct Person{
        char *name;
        int age;
    };

     //错误,重名了.
    struct Person{
        char *name;
        int age;
        int a;
    };

以上是错误的,重复定义了结构体Person

3.可在函数内也可在函数外,效果及用法类似于局部变量和全局变量.也可嵌套定义.
嵌套定义:

struct Sun{
        char *name;
        int age;
    };
 struct Person{
        char *name;
        int age;
        struct Sun baby;
    };

以上,Person这个结构体嵌套了一个 struct Sun 结构体

4.可同时在函数内外定义同一个类型,使用同样遵循就近原则,结构体变量也是如此

struct Person{
    char *name;
    int age;
    int a;
};
int add(){
struct Person{
        char *name;
        int age;
        struct Sun baby;     
};
return 0;
}

以上有两个Person结构体,但是的作用域不同,所以可以这样用

这里写图片描述
我用Xmind整理的思维导图

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值