定义int b[3][4],*q[3]; 下列赋值表达式中是正确的A. q=b b.q=*b c.*q=b+1 D.*q=&b[1][2] 答案是D
2个回答
展开全部
int *q[3];说明q是一个一维数组,有3个元素,每个元素都是指向int的指针,
q也是一个指向int的指针的指针。
*q代表q[0],表示第一个元素,*q是一个指针,所以这里只有选择D *q=&b[1][2]是正确的。
因为&b[1][2]是一个地址,可以给指针赋值。
q也是一个指向int的指针的指针。
*q代表q[0],表示第一个元素,*q是一个指针,所以这里只有选择D *q=&b[1][2]是正确的。
因为&b[1][2]是一个地址,可以给指针赋值。
追问
那么我想问*q与*pa代表的意义是不是相同的呢?*pa是指向一个值吧。那么如果相同意义,那么*q不就是q【0】指向b数组的某一个值,而不是地址?
追答
你这里的pa应该是b,*b是b[0]=&b[0][0],都是二维数组b的第一个元素的地址。
int *q;和
int *q[3]这两者是不同的指针,
前者是一级指针,*p的值是个整型值,后者是二级指针,*p的值是内存地址,对它再次求*,即**p才是个整型值。
所以对于int *q[3];*q是一个地址而不指向b数组的某一个值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |