我有一小段代码,它有一个整数数组,包含一些前导为0的元素。
int arr[]={012,234,071};
cout<<arr[0]<<endl; //output 10
cout<<arr[1]<<endl; //output 234
cout<<arr[2]<<endl; //output 57
由于某种原因,我得到的值为前导零的值不同,有人可以向我解释为什么会发生这种情况吗?
答案 0 :(得分:4)
假定前导零的数字文字是八进制数。不要使用前导零。
答案 1 :(得分:0)
整数数组元素,前导0显示垃圾输出
您没有获得“垃圾”值;编译器主要将数组中具有前导零的值(如 012 )解释为八进制值。编译器然后将其转换为十进制值(对于 012 ,它是 10 )并输出。
如果使用十进制系统,请不要使用前导零。