c语言中*p=a与*p=&a有什么区别?

2024-11-06 07:36:06
推荐回答(1个)
回答(1):

*p=&a;是将a的地址赋值给*p,结果会是一个十六进制的数。
第二个是让p指向a的地址空间。*p的傎和a相等。
int
a=2,*p;
*p=&a;
打印*P应该是一个地址值,很长一串,
p=&a;
打*P印结果会是2;
对于指针来说,
*p
=
a[0],表示向地址为p的内存区域赋值为a[0]。
p
=
a[0],把变量p的值改为a[0],这个语句正常应用中是错误的。变量p的值为内存地址,这样赋值会丢掉p原来指向的内存。