如题所述
int n=10,b[n];
b[n] 这样写 不对。 因为编译时 要给 b[n] 分配存储单元,而此时 的 n 等于 几,尚不知道。 前面的 n 刚分配了单元,但初始化 尚未执行, n 等于 几,尚不知道 。
若写:
#define n 10
int b[n];
就可以了。因为 预编译时,编译器会做字符替代,把 int b[n]; 替代 成 int b[10];
b[n] 这样写 不对。 因为编译时 要给 b[n] 分配存储单元,而此时 的 n 等于 几,尚不知道。 前面的 n 刚分配了单元,但初始化 尚未执行, n 等于 几,尚不知道 。
若写:
#define n 10
int b[n];
就可以了。因为 预编译时,编译器会做字符替代,把 int b[n]; 替代 成 int b[10];
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-12-03
int b[n];