| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3265 人关注过本帖
标题:[求助]二级指针与二维数组的联系与区别
取消只看楼主 加入收藏
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
结帖率:100%
收藏
 问题点数:0 回复次数:5 
[求助]二级指针与二维数组的联系与区别

char **p,a[20][10];
p=a在以后的程序中会出现什么问题?为什么?

C里面的指针能访问系统的所有内存么?那个同一个进程里面的一个模块的指针操作能不能破坏其他模块的内存?WHY?

搜索更多相关主题的帖子: 指针 联系 
2006-06-08 13:16
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
我C++那个删了,那多问一个,C里面的指针能访问系统的所有内存么?那个同一个进程里面的一个模块的指针操作能不能破坏其他模块的内存?WHY?
2006-06-08 13:28
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
以下是引用穆扬在2006-6-8 13:27:32的发言:

a的类型是
char (*)[10];
与p的类型并不相同
p=a;本身就很成问题,就别考虑什么"以后"了

指向指针的指针和二维数组这样运用虽然不能实现内容的复制,但是这样用法是把a的地址给了p是没问题的,论坛前面有张帖子说到P=A不可取,我不知道原因是什么。

2006-06-08 13:39
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针如:a[]可以退化为 *a ;a[][]可以退化为 **p,在类型上是不会有问题的,问题是程序在以为会有什么问题。何况对于 A[][],其中数组名A就是二维的数组的起始地址。

2006-06-08 13:55
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

斑竹把我的标题改了啊?怎么不回答一下我的问题呢?谢谢了

2006-06-08 18:32
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

谢谢各位的帮忙,我有点明白了,在这里a不是二级指针,我一直都以为他是个二级指针所以类型不相符,现在我虽然知道这一点,但是还是理解不了为什么他是个二级指针。

我以前的思路是这样的a[0][0]可以表示成指针形式**a;那么a就是一个二级指针。但是实际上a,a[0],&a地址是一样的,把a[0][0]表示成**a也是对得,我错在那里了。

这里谢谢斑竹和三楼的朋友

2006-06-09 13:15
快速回复:[求助]二级指针与二维数组的联系与区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024794 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved