二维指针问题(急!!!)
这样写,运行时出错。
#include "stdafx.h"
#include<iostream.h>
int main(int argc, char* argv[])
{
int a[2][2]={{1,2},{3,4}};
int **p=(int**)a;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
cout<<p[j][i]<<endl;
return 0;
}
而这样写,就没错,上面的代码到底错在哪里?
#include "stdafx.h"
#include<iostream.h>
int main(int argc, char* argv[])
{
int a[2][2]={{1,2},{3,4}};
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
cout<<a[j][i]<<endl;
return 0;
}
#include "stdafx.h"
#include<iostream.h>
int main(int argc, char* argv[])
{
int a[2][2]={{1,2},{3,4}};
int **p=(int**)a;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
cout<<p[j][i]<<endl;
return 0;
}
而这样写,就没错,上面的代码到底错在哪里?
#include "stdafx.h"
#include<iostream.h>
int main(int argc, char* argv[])
{
int a[2][2]={{1,2},{3,4}};
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
cout<<a[j][i]<<endl;
return 0;
}
...全文
相关推荐
举例理解C语言二维数组的指针指向问题
主要介绍了C语言二维数组的指针指向问题,文中不建议用二级指针来访问二维数组,需要的朋友可以参考下
二维指针的详解
很好的讲解了二维指针,可以看文档自学,很适合初学者。
用指针实现二维数组的转置
vc+ 用指针实现二维数组的转置,通过指针实现对二维数组的转置操作
C语言 指针与二维数组详解
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例: int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; 从概念上理解,a 的分布像一个矩阵: 0 1 2 3 4 5 6 7 8 9 10 11 但在内存中,a 的分布是一维线性的,整个数组占用一块连续的内存: C语言中的二维数组是按行排列的,也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的 4 个元素也是依次存放。数组 a
二维数组 二级指针以及数组指针的讨论
对于二维数组 二级指针以及数组指针的讨论。对于二维数组 二级指针以及数组指针的讨论


