定义int b[3][4],*q[3]; 下列赋值表达式中是正确的A. q=b b.q=*b c.*q=b+1 D.*q=&b[1][2] 答案是D

为什么呢?Aq=bBq=*bC*q=b+1D*q=&b[1][2]... 为什么呢?
A q=b
B q=*b
C *q=b+1
D *q=&b[1][2]
展开
 我来答
有钱买不起房子
2012-01-07 · TA获得超过4325个赞
知道大有可为答主
回答量:1249
采纳率:100%
帮助的人:2072万
展开全部
int *q[3];说明q是一个一维数组,有3个元素,每个元素都是指向int的指针,
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数组的某一个值
trust025
2012-01-07 · TA获得超过269个赞
知道答主
回答量:324
采纳率:0%
帮助的人:182万
展开全部
A.*q=0; b.w=q; C.*p=a; D.*p=*w; 希望说明原因,解释清楚点A . q = NULL 了对 NULL的解引用 *q = 0; 是错误的。 A, 不
追问
A  q=b
B q=*b
C *q=b+1
D *q=&b[1][2]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式