易截截图软件、单文件、免安装、纯绿色、仅160KB

【C\C++语言入门篇】 数组与指针

前面一篇我们介绍了指针,相信大家对指针不再是那么陌生,虽然在一些大胆的指针强制类型转换上有的读者还不习惯。但是至少大家心里有个数,指针式如此的灵活,以至于你可以操作得比较底层或者根本越过一些语法的限制。这可能也是众多程序员抨击CC++不安全的因素之一。安不安全不是本文想要表达的,这里只需要记住一点,如果你有足够把握,那么你绝对可以毫不犹豫的运用。
本文依然不会离开指针的影子,前面一篇还有没介绍完的,之前本来想在前面一篇介绍,但是发现在本篇介绍更适合一些。数组和指针可以说是两家亲,很多初学的读者对这两者的概念模棱两可。他们之间有什么联系和区别也是很多初学的读者最希望明白的,本文就为解决这个困扰,让指针和数组进一步加深。还是记住我们的出发点,以发散的思维去理解去联想。注重思考过程,这个过程最终只需要用程序来表达而已。
首先还是看看什么是数组,数组即是一段连续的空间(内存空间)。从这句话中,我们可以注意到数组其实就是一段空间,而且还是连续的。好了,此时对数组的基本特征就有个大致的了解了。那么内存空间是怎么样表达出来的呢?很简单:
int    a[ 100 ];
char szName[ 16 ];
这两句即为数组了,在这里a为一个拥有100个int类型元素的数组。在这里我们也可以理解int并不是数组a的类型,而是数组内部元素的类型。它表示数组内部每个元素都是32有符号整数。这样想来便联系到了指针,int* p; p代表它指向的内存地址里存放的数据是int型的。第二个szName同理也表示其每个元素的类型就是char型。这样理解对指针数组和数组指针有帮助,先放这里容后介绍。
这里a和szName并没有被初始化,那么它们里面每个元素的值我们可以认为是乱码。也就是说是随便填充的一些值。当然为什么填充这些值也是有道理的,在不同的平台可能填充的值不一样。在windows下通常被填充成类似0xcdcdcdcd或者0xcccccccc之类的。这些值在汇编层面上去理解会更直接,在这里我们就认为它是随便填充的一些值吧。就认为这些值对于我们正常的程序是没有什么用处的。
从程序表现上我们已经知道数组的声明,那么怎么跟指针联系和区别呢?先贴代码:
int* p = a;   // 这里a使用上面的a[ 100 ]数组。
我们从前一篇只可以知道,这时指针p指向了数组a的首地址,这里直接将a赋值给了p。那么可以断定这个数组名a即是代表数组的首地址。既然代表的是首地址,那么a可以看成是一个指向这1


相关文档:

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

MJ评 清华c语言门(一篇C作业可以钓到女友?)

      只是有人牵涉到写程序的,我就说说.女主角如果不出来澄清就一辈子被毁了.校风严谨的清华也有这种滥S的行为有点不可思意.找程序员写作业只是个分手的借口吧.女主角还瞒清秀的.出来讨债的"冤大头"其实也不理智,毁了前女友的幸福很好吗?
      但愿C语言门只是个娱乐 ......

C/C++语言编程修养2

21、goto语句的使用
—————————
 
N年前,软件开发的一代宗师——迪杰斯特拉(Dijkstra)说过:“goto statment is
harmful !!”,并建议取消goto语句。因为goto语句不利于程序代码的维护性。
 
这里我也强烈建议不要使用go ......

彻底理解C、C++、Win32与COM中的字符串

C/C++中的字符串问题在网上的讲解一向非常含糊,存在各个层次的库混用、滥用的情况,尤其是宽字符与窄字符等问题很难找到有效的资料,本篇随笔分享一下我长期收集到的一些比较准确的资料以及据此得到的个人理解.
C语言中的字符串
C语言中提供了两种字符类型char和wchar_t,C语言使用字符数组来表示字符串,同时支持两种直 ......

c/c++ static

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。
一、面向过程设计中的static
1、静态全局变量
在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号