在数组上编译错误?

时间:2014-02-22 11:31:55

标签: c arrays

我首先声明了数组:

int array[5] = {'5', '6'};

但它没有给出任何错误并关闭。是什么原因?我做错了吗?我也尝试了这个

int N = 5;
int array[N] = {'5', '6'};

3 个答案:

答案 0 :(得分:2)

首先,使用字符填充整数数组,如果使用大括号创建数组,则无需在方括号中添加数字。

您的代码应为:

int array [] = {2,3};

答案 1 :(得分:1)

您正在使用int初始化char的数组。它应该是

int arr[5] = {2,3};

它会将arr[0]初始化为2,将arr[1]初始化为3。其余的人初始化为0 现在,无法使用数组初始化程序初始化variable length arrays。您必须通过为其元素指定一个valuse来初始化它。您可以使用for循环

int N = 5;
int arr[N];

for(int i = 0; i < N; i++)
      scanf("%d", &arr[i]);

答案 2 :(得分:0)

我在ubuntu上使用gcc,我声明int array[5] = {'5', '6'};并使用gcc -Wall Labtest.c运行,得到了响应warning: unused variable ‘array’ [-Wunused-variable],这是你应该得到的。如果您尝试使用未声明的变量,则编译会将该值初始化为零。在我的情况下,我试图打印出数组的值。

int array[5]={'5','6'};
int i;
for (i = 0; i < 5; i++)
printf("array[%d] is : %d\n", i, array[i]); 

输出

array[0] is : 53
array[1] is : 54
array[2] is : 0
array[3] is : 0
array[4] is : 0