
关于C语言指针的一道选择题,高手请进。
255若有以下的说明和语句:main(){intt[3][2],*pt[3],k;for(k=0;k<3;k++)pt[k]=t[k];}则以一选项中能正确表示t数组元素...
255若有以下的说明和语句:
main()
{int t[3][2], *pt[3],k;
for(k=0; k<3;k++) pt[k]=t[k];
}
则以一选项中能正确表示t数组元素地址的表达式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
高手最好能给我讲的详细一点,好吗?key为C 展开
main()
{int t[3][2], *pt[3],k;
for(k=0; k<3;k++) pt[k]=t[k];
}
则以一选项中能正确表示t数组元素地址的表达式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
高手最好能给我讲的详细一点,好吗?key为C 展开
3个回答
展开全部
A选项的错误在于没有&t[3][2]这个地址,因为数组最大的地址是&t[2][1];
pt是一个指针数组,即pt[0],pt[1],pt[2]是三个指针(注意区分int (*pt)[3]这种形式),
所以B选项*pt[0]是一个变量,D选项&pt[2]是指针pt[2]的地址而非数组地址;
C选项pt+1即&pt[1],所以*(pt+1)就是&(*pt[1])也就是pt[1],是一个指向数组指针,所以应该选C,~~~~
pt是一个指针数组,即pt[0],pt[1],pt[2]是三个指针(注意区分int (*pt)[3]这种形式),
所以B选项*pt[0]是一个变量,D选项&pt[2]是指针pt[2]的地址而非数组地址;
C选项pt+1即&pt[1],所以*(pt+1)就是&(*pt[1])也就是pt[1],是一个指向数组指针,所以应该选C,~~~~
展开全部
A 答案显然不对,数组下标不能达到[3][2]
B *pt[0]是pt[0]指向的内容,不是地址
C (pt+1)代表指针元素的地址,前面加*代表其内容,即指向内容的地址.故当选.
D 显然不对
B *pt[0]是pt[0]指向的内容,不是地址
C (pt+1)代表指针元素的地址,前面加*代表其内容,即指向内容的地址.故当选.
D 显然不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
23146789
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |