对于变量定义int p[5],*a[5],下列哪个表达式是正确的?A.p=a B.p[0]=a C.*(a+1)=p D.a[0]=2

问题描述:

对于变量定义int p[5],*a[5],下列哪个表达式是正确的?A.p=a B.p[0]=a C.*(a+1)=p D.a[0]=2
对于变量定义int p[5],*a[5],下列哪个表达式是正确的?
A.p=a B.p[0]=a C.*(a+1)=p D.a[0]=2

p是指向数组p[5]首地址的指针,它是一个指向int型变量的指针.
*a[5]可以理解为:*(a[5]),即这个数组是由5个指向int型变量的指针组成的.例如:a[0],a[1].这几个都是指针.
所以p和a[0],a[1]...a[4],它们都是指向int型变量的指针.
赋值时,只能将指针赋值给指针,或者地址赋值给指针.
A,B,D赋值类型两边不一致;只有C是将int型变量地址赋值给int型变量地址.