如何去除结构体变量中的每一个成员

 如何去除结构体变量中的每一个成员

     1、结构体变量名.成员名

     2、指针变量名->成员名         (第二种方式更常用)

          指针变量名 -> 成员名 在计算机内部会被转化成 *指针变量名).成员名的方式去执行

                                                             所以说这两种方式是等价的

struct Student

{

int age;

float score;

char sex;

};

 

int main(void)

{

struct Student st = {80,66.6,'F'}; // 第一个是定义的同时去赋值,初始化  定义的同时赋初始值

struct Student *pst = &st;  // &st 不能够改成 st

 

// pst变成一个指针了

 

//写* 表示 pst 能存放前面 这个struct Student类型的地址  ,把struct Student  当作是 int

 

 

pst->age = 88; // 第二种方式

st.score = 66.6f; //第一种方式   f 浮点型 

 

// 66.6在C语言中默认是double类型,如果希望一个实数是float类型,则必须在 66.6 后面加 f 或 F ,因此 66.6 是double,66.6f或 66.6F 是float

 

printf("%d %f\n", st.age, pst -> score);

 

//上来就直接编译,不管程序报不报错

 

 

 

return 0;

}

              pst->age 在计算机内会被转化成  *pst.age, 没有为什么,这就是 ->的含义,这是一种硬性规定

              所以 pst -> age 等价于 *pst.age 也等价于 st.age  

             很重要,讲链表的时候要用到          通常只使用 pst -> age

             我们之所以知道pst -> age 等价于 st.age 是因为 pst -> age 是被转化成了(*pst.age 来执行的

            

             pst -> age的含义:(要背会)

             pst所指向的那个结构体变量中的age 这个成员

             pst -> age   只是代表的是 struct Student 中的 age 这个小成员        

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值