我正在和朋友交流,帮助她处理一段代码。以前我一直认为数组必须是编译时常量,因为它们在栈上。但她说她的朋友使用了以下代码:
#include <iostream.h>
#include <stdlib.h>
int main()
{
int value = ' ' ;
int sum = 0;
int count = 0;
cout<<"Please enter the total number of employees" <<endl;;
cin>> value;
int numbers[value];
cout<<"Now enter the employees corresponding salaries" <<endl;;
for (int k = 0; k < value; k++)
{
cin >> numbers[k];
}
}
他们正在使用Dev-C++。
这段代码应该可以工作吗?我认为不行。
value
初始化为' '
有什么原因吗?编译器不会在意(它会将' '
字符转换为其ASCII值,即32),但是将一个整数初始化为32似乎是一个奇怪而随机的数字。 - Jeremy T0
应该没问题,int
不是char
... 这就是为什么这看起来对我们很奇怪。 - AJG85