C指针3

#include <stdio.h>
#include <stdlib.h>

typedef struct{
int age;
char* name[20];

} student;
int main(){
student lisa = {18,"lisa"};
/*
* 结构体成员在存储空间中是连续的
* */
printf("%d\t%d\n",&lisa.age,&lisa.name);

/*结构体的地址就是结构体首个成员的地址*/
student* p = &lisa;
printf("%d\n",p);
printf("%d\n",p+1);

/*
* 结构体指针访问成员的方式,使用 ->符号
* */
p ->age = 20;
printf("%d\n",p->age);
/*以下三种方式改变结构体成员的值都可以*/
p->age = 20;//结构体指针指向成员
printf("%d\n",p->age);
lisa.age = 21;//结构体变量点成员
printf("%d\n",p->age);
(*p).age = 22;//*p和lisa是等数
printf("%d\n",p->age);
fflush(stdout);

}

 

 

posted on 2018-04-08 11:37  黄志平  阅读(105)  评论(0编辑  收藏  举报

导航