如果我使用变量而不是常量初始化数组,那么我得到了一个奇怪的输出 下面的两个代码为我生成了不同的输出。
int x =7;
int arr[x];
和
int arr[7];
第一个生成此输出
78 9 73 32 6422216 50 42
和第二个
78 9 73 54 29 50 42
我需要使用向量的大小来表示数组大小。 我已经尝试使变量保持不变但它并没有什么区别。
编辑 在这里使用数组
int arr[size];
for(int j=i;j<nums.size();j++)
arr[j+1]=nums[j];
arr[i]=nums[signs.size()];
for(int j=0;j<nums.size();j++)
nums[j]=arr[j];
答案 0 :(得分:1)
在两种情况下都没有初始化数组。
如果没有显式初始值设定项,则数组(或任何变量)的内容为 indeterminate 。您无法预测这些值会是什么。如果其中一个值恰好是陷阱表示,则在尝试读取该值时调用未定义的行为。
如果希望数组具有一组特定的值,则需要使用初始化程序或赋值显式设置这些值。