
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]; 展开
A.intm[5]; B.char b[]={‘h’,‘e’ ,‘\0’};
C.int a[10]={1,6,8,4}; D.int n=10; char p[n]; 展开
3个回答
展开全部
D不正确,因为C语言中定义数组时给出的数组长度必须是定值,不能是变量。因为C语言在编译时根据定义的大小一次性分配内存。这些是可以的:
#define N 5
char p[N];//正确
char a[4];//正确
即使是const变量也不能用来声明数组下标。
const int a = 9;
char p[a];//错误,编译不通过,C++可以
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询