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

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

     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 这个小成员        

 

上一篇:18-MySQL-数据库连接池


下一篇:java:JDBC使用步骤(mysql)java小白的第一篇博客