int a[ ]={0,1,2,3,4,5,6,7};这种定义对么# define N 3 int a[2N+2]; 和 int a[ ]={0,1,2,3,4,5,6,7}; 这两种定义哪个是正确对的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 20:48:02
int a[ ]={0,1,2,3,4,5,6,7};这种定义对么# define N 3 int a[2N+2]; 和 int a[ ]={0,1,2,3,4,5,6,7}; 这两种定义哪个是正确对的?

int a[ ]={0,1,2,3,4,5,6,7};这种定义对么# define N 3 int a[2N+2]; 和 int a[ ]={0,1,2,3,4,5,6,7}; 这两种定义哪个是正确对的?
int a[ ]={0,1,2,3,4,5,6,7};这种定义对么
# define N 3 int a[2N+2]; 和 int a[ ]={0,1,2,3,4,5,6,7}; 这两种定义哪个是正确对的?

int a[ ]={0,1,2,3,4,5,6,7};这种定义对么# define N 3 int a[2N+2]; 和 int a[ ]={0,1,2,3,4,5,6,7}; 这两种定义哪个是正确对的?
# define N 3 
int a[2N+2];

这个定义是错误的, 因为不是常量表达式,而且2N 是语法和语义的双重错误.你要是

# define N 3 
int a[2+N+2];
int a[2*N+2];

这个是正确的了,因为数组的维数必须是常量.这点很重要

int a[ ]={0,1,2,3,4,5,6,7};

这个是正确的,因为当没有给定数组的维数时,初始化列表中的元素个数决定了数组的维数.上面的代码相当于

int [8] = {0,1,2,3,4,5,6,7};