代码定义了这样的数组-

#define N 100
long int mid[N+1]


在这里是否mid[N+1]=mid[100+1]mid[101]
我也想知道我们可以将2个元素的数组声明为int n[1+1]吗?

最佳答案

从第二个问题开始,是的,您可以声明类似mid[2+1]的内容,因为您声明的是一个字面大小的数组(3是字面量),而不是可变大小。

这使我们想到了第一个问题。是的,是一样的。在编译的早期,编译器将代码中的所有定义都“扩展”为定义的值或表达式,因此mid[N+1]从字面上变成了mid[100+1]

请注意,此处的N是定义的值,而不是变量。您不能声明mid[N+1]如果该N是变量(我想直到C99)。

10-07 13:23
查看更多