C语言语句定义

下列定义数组的语句中,正确的是A、intN=0;intx[N]B、intx[0...10]C、#defineN10D、intx[]intx[N];D是对的话为什么intn... 下列定义数组的语句中,正确的是
A、int N=0;int x[N] B、int x[0...10]
C、#define N 10 D、int x[]
int x[N];
D 是对的话 为什么int num[ ] ={1,2,3,4,5,6}; 是对的?
展开
 我来答
an0011121
2013-01-09 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3948
采纳率:55%
帮助的人:2346万
展开全部
答案:C。
A、x[0],数组空间最小是1。如果定义为0,编译都不能通过。会提示“cannot allocate an array of constant size 0”和“ 'num' : unknown size”。
B、定义数组写数组的容量,x[0...10]没有任何意义。
C、定义N为10.后来int x[10],开辟空间为10*sizeof(int)的大小。合法,正确。
D、定义的时候int x[]就这些是错误的,这仅仅是定义。如果是定义的过程中同时初始化,就是你说的int num[ ] ={1,2,3,4,5,6}; 就是正确的了,定义的同时初始化就告诉系统我存了几个数,系统就自动计算出容量来了。但是只定义int x[],想后来再输入的话是不行的。
LycrusHamster
2013-01-09 · TA获得超过889个赞
知道小有建树答主
回答量:487
采纳率:100%
帮助的人:111万
展开全部
D因为你的数组的声明和初始化是一起进行的
编译器会根据你给出的初始化参数自动给数组定长度
这里的num自动就是6个了
所以是对的

A是不行的N是变量,声明数组必须是确定的字面值,也就是必须是1、4、6、13。。。等等这种
要变量声明,你只能用alloc家族的函数

C是对的 因为你的N是macro
在编译之前会预编译,N会被替换成10,这样就是字面值10;

B。。。这都不用解释。。
更多追问追答
追问
= =谢谢~因为先看到后面的所以给了他,还是谢谢~
追答
那您也给个赞同啊。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小知知快长大
2013-01-09 · TA获得超过267个赞
知道小有建树答主
回答量:434
采纳率:0%
帮助的人:277万
展开全部
C是对的
声明N为10后可以int x[N]
更多追问追答
追问
为什么N为10后可以INT X[N]?
D是错,int num[]={1,2,3,4,5,6};为啥是对的?
追答
#define N 10这是一个声明语句,也就是说这样写过之后N在你的程序路面,就会被自动默认成一个已知数,这个已知数为整数10,

所以这时候的int x[N]和int x[10]效果是等同的
int num[]={1,2,3,4,5,6};这种写法是这样定义的,你大括号里面有多少元素,num[]的数组上限就会被定义成多少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旭日东升_ydx
2013-01-09 · 超过11用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:31.3万
展开全部
int num[]={1,2,3,4,5,6};这是c的一种赋值方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式