C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因

下列对数组定义不正确的语句是_______。A.intm[5];B.charb[]={‘h’,‘e’,‘\0’};C.inta[10]={1,6,8,4};D.intn=... 下列对数组定义不正确的语句是_______。
A.intm[5]; B.char b[]={‘h’,‘e’ ,‘\0’};
C.int a[10]={1,6,8,4}; D.int n=10; char p[n];
展开
 我来答
lv...9@163.com
2013-06-16 · 超过14用户采纳过TA的回答
知道答主
回答量:17
采纳率:0%
帮助的人:33.4万
展开全部

D不正确,因为C语言中定义数组时给出的数组长度必须是定值,不能是变量。因为C语言在编译时根据定义的大小一次性分配内存。这些是可以的:

#define N 5
char p[N];//正确
char a[4];//正确

即使是const变量也不能用来声明数组下标。

const int a = 9;
char p[a];//错误,编译不通过,C++可以
熊熊朋51
2013-06-16 · TA获得超过1139个赞
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:222万
展开全部
D int 前没加const
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
somken
2013-06-16 · TA获得超过711个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:163万
展开全部
D c语言数组定义 不能用变量,可以用常量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式