导读 大家好,我是小典,我来为大家解答以上问题。c++二维数组指针,二维数组指针很多人还不知道,现在让我们一起来看看吧!1、首先我觉得这样使...
大家好,我是小典,我来为大家解答以上问题。c++二维数组指针,二维数组指针很多人还不知道,现在让我们一起来看看吧!
1、首先我觉得这样使用是不安全的。
2、也许会导致你开始给a*声明的int[5]无法析构。
3、我试了下在vc05
4、int (*a)[5],i;
5、int b[5]={1,3,5,7,9};
6、int c[3][5];
7、a=b;
8、这是不被允许的。
9、如果你是要开一个指针的指针的话,这样做
10、int b[5]={1,3,5,7,9};
11、int c[3][5];
12、int* a[4];//a现在是一个int[]的指针
13、a[0]=b;//a[0]和b一样为int*
14、int **q=a+1;//q的位置其实是a[1],就像a的位置就是a[0]
15、*(int**)q=*(int**)(c);//类型强制转换,保证指针赋值
16、这样下来结果应该是这样的,a[0]为b[]指针,a[1]至a[4]分别是c[0][]到c[3][]指针。
17、希望有所帮助。
18、说实在的指针就是一个32位整形变量,只能指向内存中唯一一个地址。光从存储来说任意一个指针应该都和unsigned long没有区别。
19、——————————————————————————————
20、汗。行的地址知道了,可以改了,不就等于你能把其它行的地址赋值给这个地址?一维数组的标识其实只靠行头的那个地址。也就是说一位数组你在用的时候只用那个行头的指针啊。
21、把这个指针赋值给你的二维数组的行指针,不就是意味着你的二维数组的指定行就是那个一维数组?
本文到此讲解完毕了,希望对大家有帮助。