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}; 是对的? 展开
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}; 是对的? 展开
4个回答
展开全部
答案: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[],想后来再输入的话是不行的。
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[],想后来再输入的话是不行的。
展开全部
D因为你的数组的声明和初始化是一起进行的
编译器会根据你给出的初始化参数自动给数组定长度
这里的num自动就是6个了
所以是对的
A是不行的N是变量,声明数组必须是确定的字面值,也就是必须是1、4、6、13。。。等等这种
要变量声明,你只能用alloc家族的函数
C是对的 因为你的N是macro
在编译之前会预编译,N会被替换成10,这样就是字面值10;
B。。。这都不用解释。。
编译器会根据你给出的初始化参数自动给数组定长度
这里的num自动就是6个了
所以是对的
A是不行的N是变量,声明数组必须是确定的字面值,也就是必须是1、4、6、13。。。等等这种
要变量声明,你只能用alloc家族的函数
C是对的 因为你的N是macro
在编译之前会预编译,N会被替换成10,这样就是字面值10;
B。。。这都不用解释。。
更多追问追答
追问
= =谢谢~因为先看到后面的所以给了他,还是谢谢~
追答
那您也给个赞同啊。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C是对的
声明N为10后可以int x[N]
声明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[]的数组上限就会被定义成多少
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int num[]={1,2,3,4,5,6};这是c的一种赋值方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询