易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

ARM+Linux中无法响应ctrl+c是怎么回事

到最后还是自己解决了,导致该问题的原因是在linux启动到最后出现:
/bin/sh: can't access tty; job control turned off
而出现该错误的原因和解决方法google后有千百种,尝试了很多种都没有帮我解决问题。
下面是我自己的解决方法:
1. vi /etc/inittab 第一行添加
    console::sysinit:/etc/init.d ......

从C++到JAVA,C++程序员学习JAVA的指南

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie
讨论新闻组及文件
Technorati 标签: JAVA
,C++
,Python
JAVA is not just another programming language. -- 匿名
学习更新的语言,有助于了解别人对旧语言有哪些不满。 -- 匿名
 
前言

说明本文的行文习惯,文章写作流程以本人阅读《Java Progra ......

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

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

C/C++语言编程修养1(转)

什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?
我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对
于速度快,只要编得多也就熟能生巧了。
 
我认为好的程序员应该有以下几方面的素质:
 
  1、有专研精神,勤学善问、举一反 ......

定义C/C++全局变量/常量几种方法的区别

在讨论全局变量之前我们先要明白几个基本的概念:
1. 编译单元(模块):
    在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用g ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号