以下与 int *q[5]; 等价的定义语句是 (A) int q[5] ; (B) int *q ; (C) int *(q[5]) ; (D) int (*q)[5] ;

详解... 详解 展开
 我来答
热爱学习的Genji
高粉答主

2020-06-16 · 说的都是干货,快来关注
知道小有建树答主
回答量:1894
采纳率:100%
帮助的人:29万
展开全部

int* q[5];是一个存放指针的数组(通常叫指针数组

A是一个存放int型数组;

B是一个int型指针;

C是一个存放指针的数组;

D一个指向指针数组的指针,是一个变量,而不是数组。

故选C。

数组指针是指向数组地址的指针,其本质为指针;指针数组是数组元素为指针的数组(例如 int *p[3],定义了p[0],p[1],p[2]三个指针),其本质为数组。数组指针的使用在某些情况下与指针数组很相似,要注意区别。

扩展资料:

数组指针和指针数组的区别:

1、数组指针,定义 int (*p)[n]:

“()”优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。

2、指针数组,定义 int *p[n]:

[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,这样赋值是错误的:p=a;

因为p是个不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。

松甜恬0Je4ba
2011-12-30 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3357万
展开全部
C
AB显然不对,这个没有什么好解释的。

int *q[5] 表示五个元素都是int 类型的指针
而 int (*q)[5] 表示每个元素都是指向一个拥有5个int元素的指针
所以D不对

C只是换了一种写法而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
源语梦Hg
推荐于2018-03-14 · TA获得超过521个赞
知道小有建树答主
回答量:670
采纳率:100%
帮助的人:270万
展开全部
C
int* q[5];是一个存放指针的数组(通常叫指针数组)
A是一个存放int型数组
B是一个int型指针
C同
D一个指向指针数组的指针,他是一个变量,而不是数组
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小斯头9067
2012-01-04 · TA获得超过5.9万个赞
知道大有可为答主
回答量:3.6万
采纳率:0%
帮助的人:5278万
展开全部
C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式