经过下列的语句 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:10
推荐回答(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就没有问题了。