经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是(A)。

A:p=p+2;B:p=a[5];C:p=a[2]+2;D:p=&(j+2);d为什么不对
2024年11月16日 15:24
有2个网友回答
网友(1):

p是int型指针,j是整数,&(j+2)是指存储j+2的地址,前者是一个指针,后者是一个具体的地址,是不能将一个地址赋给一个指针的。具体可以看看下面这个网站,讲的还挺详细的。
http://blog.sina.com.cn/s/blog_49195a520100l5p0.html

网友(2):

j+2指向哪里,j+2结果是一个数值,怎么去地址呢,j可以取地址,如果写成p=&j+2就没有问题了。