游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3598|回复: 7

二级指针与二维数组求助

[复制链接]

4

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2006-11-5 16:33:00 | 显示全部楼层 |阅读模式
int a[2][3] ; int ** p ;  p = a ;
为何不行呢?
a不就是个指向指针的指针吗?
而下面就可以呢?
char * ch [2] ={"hello , world !" ,"12345677"};    char ** p =ch ;
cout<<*p ;   

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-11-5 17:19:00 | 显示全部楼层

Re:二级指针与二维数组求助

基础问题。不知道怎么解释

4

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2006-11-5 17:26:00 | 显示全部楼层

Re:二级指针与二维数组求助

说说看!

25

主题

304

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
发表于 2006-11-5 23:47:00 | 显示全部楼层

Re:二级指针与二维数组求助

二级数组不能转换成二级指针
因为
int a[2][3] 就是 (int [3])[2]

int **  是 (int *)[无限]
int [3]的长度是sizeof(int)*3
int *的长度是 sizeof(int*)
在32位下,他们的长度不一样,访问 (int*)[n]和(int[3])[n]的结果也是不一样的,所以编译器不能把他们等同成同样的东西

char *ch[2] 就是 (char*)[2]
char ** 就是      (char*)[无限]
他们元素的sizeof是一样的所以可以直接等同过去




25

主题

304

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
发表于 2006-11-5 23:55:00 | 显示全部楼层

Re:二级指针与二维数组求助

int a[2][3]                   int ** b

**int a1[3]**                **********
int   i1                            int * p1
int   i2                            int * p2
int   i3                            int * p3
**int a2[3]**                **********
int   i4                            int * p4
int   i5                            int * p5
int   i6                            int * p6
***********                **********

访问a[1][1]的结果是 i5
  编译器先解析a[1]为 a2
  然后解析a2[1] 为i5

访问b[1][1]的结果是 p2[1]
  编译器先解析b[1]为p2
  然后解析为p2[1]

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-6 11:28:00 | 显示全部楼层

Re:二级指针与二维数组求助

1. LZ举的2个例子不具可比性
2. 虽然a[2][3]在物理上等同于a[6],但是其类型不同
3. 如果compiler让你的p=a,那么请问*p指向哪里
4. [][] != *[] != **,[]是明确指出大小,而* means any where/any size
5. 所以必须明确,例如
        int a[2][3] ;
        int *pp1, *pp2;
        pp1 = (int *)(&a[0]);
        pp1 = &a[0][0];
        pp2 = (int *)(&a[1]);
        pp2 = &a[1][0];

4

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2006-11-6 19:57:00 | 显示全部楼层

Re:二级指针与二维数组求助

谢谢了!!!

0

主题

51

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2012-9-27 18:49:00 | 显示全部楼层

Re:二级指针与二维数组求助

too hard
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-27 16:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表