代码定义了这样的数组-
#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)。