网站大量收购独家精品文档,联系QQ:2885784924

C语言中数组指针和指针数组完全分析.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言中数组指针和指针数组完全分析

C++语言中数组指针和指针数组彻底分析近来在论坛中机场经常看到有关数组指针和指针数组的讨论。这个是学习c++等语言中不可少的步骤, 不过向来指针的东西就是很有用但是也是很难用的东西,所以学习起来也不是很容易了。近来本人也没有什么项目可以做的,所以就随便写的自己关于这些方面的理解,供同行参考,同时也可以把自己的错误理解暴露在阳光下,接受大家评判的洗礼。 file://Powered By ZosaTapo file://dertyang@263.net ################################ #????????????????????????????? # #?????? 基本知识?????????????? # #????????????????????????????? # ################################ 当然我们一切都是从最简单的内建类型开始,最后我会做一些推广。 先看一下基本的形式,我们从这里起步! --------------指针---------------- int a=10; int *p=a; -------------指针的指针----------- int b=20; int *p=b; int **p2p=p; -------------简单数组----------------- int c[10];//整数数组,含有10个整数元素 ????????? file://也就是说每一个元素都是整数 ????????? --------------指针数组-------------------- int *p[10];//指针数组,含有10个指针元素 ??????????? file://也就是说每一个元素都是指针 ??????????? --------------数组指针-------------------- int (*p)[10];//数组指针,这个指针可以用来指向 ???????????? file://含有10个元素的整数数组 上面这些简单的形式是我们必须要首先理解,这个是基本的知识。 同时我们从上面也要得出一个很重要的知识提示:c++语言层面上 关于变量声明的部分,后缀结合变量的优先级比前缀要高的。 看我们上面的例子的最后两个就明白了,我们为了实现数组指针的 声明我们不得不变通一下。我们采用()来实现优先级的改变,实现了 数组指针的声明。 ################################ #????????????????????????????? # #????? 进一步提高知识????????? # #????????????????????????????? # ################################ 数组,数组的指针,指针的数组,概念太多了。我接受概念一多的 时候,我就想把这些复杂的东西简单一下。因为我太懒了,概念简化 一下,记住更容易一点。所以我们这里要认识一下上面这些概念本质。 这样可以简化概念,减少记忆的难度。 先看一段程序。 #include iostream #include typeinfo using namespace std; int main() { ?int vInt=10; ?int arr[2]={10,20}; ? ?int *p=vInt; ?int **p2p=p; ? ?int *parr[2]={vInt,vInt}; ?int (*p2arr)[2]=arr; ?coutDeclaration [int vInt=10] type==typeid(vInt).name()endl; ?coutDeclaration [arr[2]={10,20}] type==typeid(arr).name()endl; ?coutDeclaration [int *p=vInt] type==typeid(p).name()endl; ?coutDeclaration [int **p2p=p] type==typeid(p2p).name()endl; ?coutDeclaration [int *parr[2]={vInt,vInt}] type==typeid(parr).name()endl; ?coutDeclaration [int (*p2arr)[2]=arr] type==typeid(p2arr).name()endl; ?return 0; } 运行的结果如下:(我在前面加了行号#XX) #01 Declaration [int vInt=10] type==int #02 Declaration [arr[2]={10,20}] t

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档