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

2024-11-06 03:46:33
推荐回答(2个)
回答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原来指向的内存。

回答2: