谁能解释下int *p=&a是对的,但是*p=&a;却不对?

2024-11-24 04:21:45
推荐回答(3个)
回答1:

int *p=&a;这一句定义了一个变量p,p是一个指向int型的指针,即p的数据类型是int*,而&a的数据类型也是int*。这条语句孝烂可以分写为 int *p;p=&a;所以这一句没问题。

*p=&a; 这一句是对(*p)进行赋值操作,(*p)的数据类山拿型是int型,而&a的数据类型是int*,两者类型不同,无法进行赋值,逗慎搭所以语句是错的。

回答2:

当定义
int *p=&a;
这种写法时。 p是变拆乱量。 int*是类培梁型。
给变量初配御运始化的时候,是给变量赋值,也就是说 这里本质上也是p=&a;

回答3:

必须要指念碰定指针的类型,所以前面是对的;
因樱高链为数据类型不同,指针操作会读取不同长度的连续空脊孙间