在 C 语言中,若有以下定义和赋值语句

在 C 语言中,若有以下定义和赋值语句
int b[2][3]={0} (*p)[3];
p=b;
则对 b 数组的第 i 行第 j 列(假如 i,j 已正确说明并赋值)元素的非法引用为___________
A、*( *(p+i)+j) B、*(p[i]+j) C、*(p+i)+j D、(*(p+i))[j]
还能叫什么 1年前 已收到1个回答 举报

魏wei 种子

共回答了19个问题采纳率:84.2% 举报

C选项是错的
A选项*(p+i)为p[i][0]的地址,*(p+i)+j为p[i][j]的地址,*( *(p+i)+j) 也就是p[i][j]的值
B选项中p[i]相当于*(p+i),其他跟A一样了
C选项,如上面所说,*(p+i)+j为p[i][j]的地址,不能赋值
D选项,(*(p+i))为p[i][0]的地址,(*(p+i))[j]就是p[i][j]的值

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.014 s. - webmaster@yulucn.com