我有一个小问题.我创建了2D int数组.当我输入它时,我得到十六进制数字的小数.我正在使用Dev C++.
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
const int max=9;
int ar[max][max]={
{0,6,0,0,2,0,0,4,0},
{5,0,0,3,0,0,0,0,0},
{0,8,0,0,1,0,0,0,0},
{6,0,0,0,0,7,0,0,0},
{0,3,7,0,0,0,2,8,0},
{0,2,0,8,0,0,0,3,0},
{0,0,0,0,0,0,0,0,0},
{7,0,0,4,0,0,0,0,1},
{0,0,0,0,6,0,0,2,0}};
for (int i=0;i<max;i++){
for(int j=0;j<max;j++){
cout<<ar[i,j]<<" ";
}
cout<<"\n";
}
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
作为回报,我得到了这个http://www.dropmocks.com/mf8wl
那是因为你陷入了操作员的狡猾陷阱,!
首先,C没有多维数组作为基元.正如您在此声明的那样,2D数组只是"数组数组".因此,访问数组是没有意义的a[i,j].你应该首先得到"行" a[i]然后索引"列" [j],从那里a[i][j].
那么,为什么你的代码会编译?因为它,是C中的算子.评估a,b有效地是表达式的评估a,然后b,返回评估b的结果.因此,您实际上是a[j]在这里打印,这是一个int[]十六进制打印作为数组的地址.
,你问,为什么要有一个操作员呢?除了令人困惑之外,它主要用于构造,例如for,您可能需要初始化或增量构造中的多个表达式,即for (j = 0, i = 0; i + j < k; i++, j += 2)或类似.
| 归档时间: |
|
| 查看次数: |
369 次 |
| 最近记录: |