- //结构体指针
- //用于存储结构体的地址,并操作地址对应的结构体空间里的数据
- #include <stdio.h>
- int main(){
- // 定义及初始化赋值
- struct Person{
- char *name;
- int age;
- char a[2];
- };
- struct Person shi={"shiyan",2,{'a','b'}};
- printf("\n%d%s\n",shi.age,shi.a);
- shi.a[0]='c';
- printf("\n%d%s\n",shi.age,shi.a);
- // struct Person per1={"CAT",2};
- // struct Person *p=&per1;//取结构体地址
- //
- //// 取值方法1
- //// (*p).name;
- //
- // printf("%s,%d\n",per1.name,per1.age);
- // printf("%s,%d\n",(*p).name,(*p).age);
- // printf("%s,%d\n",p->name,p->age);
- ////
- // p->name="DOG";
- // (*p).age=10;
- // printf("%s,%d\n",per1.name,per1.age);
- //
- //// char **ps=per1;//这是错误的
- //// 结构体名并不包含第一个元素的地址,要记住,要和数组区分开
- // char **ps=&per1.name;//这样才是第一个元素的地址
- //
- // char *c=per1.name;
- // printf("%s\n",c);
- return 0;
- }
|
|