2.如何取出结构体变量的每一个成员
第一种(.)运算符,(结构体变量.成员);如st.age
第二种(*p)通过指针前提需要结构体地址存放于指针变量里如(*p).age;其实*p就等价于st
第三种 (->)通过指针运算符,指向某个结构体成员
即:(指针变量->结构体成员);如:p->age
pst->age;//第3种方式:指针变量->成员名,在计算机内部会被转换成(*pst).age也等价于st.age.因为pst=&st,所以*p等价于st
pst->age的含义:表示所指向的那个结构体变量中的age成员,指向age之后则pst->age就是age这个成员,如pst->age = 100;就会将age改成100,;类比如p=&i;则p就是&i,所以*p就是取&i的内容,*p就是i的值,如果i=10;即*p 也等于 10
*p:以p变量为地址的内容
代码部分:如何取出结构体变量的每一个成员
# include <stdio.h>
struct Student //声明结构体类型
{
int age;
float score;
char sex;
};
int main()
{
//总体初始化
struct Student st = {80, 66.6f, 'W'};//定义结构体变量的同时并初始化
struct Student* pst = &st; //指向该变量首地址
st.age; //第一种方式:变量名.成员名
pst->age;//第二种方式:指针变量.成员名,在计算机内部会被转换成(*pst).age
(*pst).age;//第三种输出方式,*pst要加括号
pst->age = 100;//改变age的值
st.age = 88.8;
printf("%d %3.1f\n",st.age, pst->score);
return 0;
}