标签:理解 直接 print ali 优先级 col span clu 自己的
int a,*p=&a; printf("&a---%d\np---%d\n&p---%d\n*&p---%d\n&*p---%d\n*p---%d",&a,p,&p,*&p,&*p,*p); if(a)printf("aa");
/*输出结果
&a---6356788
p---6356788
&p---6356784
*&p---6356788
&*p---6356788
*p---3022848aa请按任意键继续. . .
*/
#include<stdio.h> struct st { int num; int s; }; int main(void) { int d=4; struct st a,*p=&a; //*p=d; //报错 p->num=d; //ok printf("%d",*p); //4 }
我以为*p=&a;和*p指向数组一样,可以用*p直接对第一个成员进行赋值,但是我发现并不可以;
我绝对可能是数据类型的原因,数组时因为每一个元素都时int类型,所以*p指向int数组类型的第一个元素也是int类型,可以直接赋值;
我的理解:而结构体中,*p指向结构体类型数据a,虽然地址是指向第一个成员,但是a是结构体类型,num才是int类型,所以要用p->num获取num在对其赋值。
标签:理解 直接 print ali 优先级 col span clu 自己的
原文地址:https://www.cnblogs.com/shellingfordly/p/11252051.html