[黑马程序员][C语言]结构体

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



结构体的定义:

关键字: struct
struct 结构体名{
     
     类型名1 成员名1;
     
     类型名2 成员名2;
     
     ……
     
     类型名n 成员名n;   
     
 };

结构体变量的定义:

  1. struct Student {
         char *name;
         int age;
     };
     
     struct Student stu;
  2. struct Student {
        char *name;
        int age;
    } stu;
  3. struct {
        char *name;
        int age;
    } stu;

结构体的初始化:

将各成员的初值,按顺序地放在一对大括号{}中,并用逗号分隔,一一对应赋值。

例如:

struct Student {
     char *name;
     int age;
 };
 
 struct Student stu = {"MJ", 27};

而且,只能在定义变量的同时进行初始化赋值,初始化赋值和变量的定义不能分开(可以操作成员),下面的做法是错误的:

struct Student stu;
stu = {"MJ", 27};

赋值

"."称为成员运算符,它在所有运算符中优先级最高。

指向结构体的指针

  1. 如此形式:struct 结构体名称 * 指针变量名。
  2. * 访问结构体成员的方式:
     结构体变量.成员名
    (*指针变量名).成员名
    指针变量名->成员名

注意

  1. 定义结构体类型,只是说明了该类型的组成情况,并没有给它分配存储空间,就像系统不为int类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量。
  2. 结构体变量占用的内存空间是其成员所占内存之和,而且各成员在内存中按定义的顺序依次排列。
  3. 结构体只能在定义变量的同时进行初始化赋值。初始化赋值和变量的定义是不能分开的。但是可以给成员赋值。
  4. * 还有一种东西叫结构体数组。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值