【C\C++语言入门篇】 深入指针
再上一篇,我们介绍了基本调试。之前也说了,之所以把调试放在前面讲是因为后面的文章基本都会用到调试。观察我们的程序到底发生了什么。让我们能够直接明了的看清楚问题的本质。本篇将深入一点介绍指针这个让无数初学者畏惧的东西。希望大家再看完本篇之后能对指针有新的认识,之后不再惧怕它。觉得它就那么回事。那下面我们就努力攻克这个令我们“惧怕”的东西。
我们可能进入大学读计算机相关专业,基本第一门编程语言就是C语言。可能老师们也喜欢跟学生总结整本书难点在什么地方。那么指针必然是老师提到的难点之一。我个人觉得这样的总结还不如不总结,原因很简单,因为这样会给学生心理负担,学到指针的时候那根弦都崩的很紧。从骨子里就认定了它有难度,初学者脆弱的心灵因此而感到惧怕。换个角度,为什么我们不能觉得指针也就那么回事?没有什么特别的嘛,哪里难了嘛!这样不是既有信心又有兴趣去搞定它?说了这么多,只想强调一点,什么东西都报怀疑态度未必是件坏事。指针不是老师说的那么恐怖。好了,下面我们就系统的从几个角度去理解指针。
概念上理解 所谓指针,没学过编程语言的可能会觉得是指南针或者鼠标的指针。呵呵,这种说法虽然差之千里,但是也不是毫无道理。为什么呢?比如指南针,以C语言指针的角度去思考,那么指南针之所以叫指南针因为它始终是指向南方的。对!南方,顿时恍然大悟。联系起来可以想象成:指南针就是指针变量,它指向南方。南方即是指南针这个变量的值。那么 指南针(指针) == 南方(这里的==可以理解成if( a == 100 )里面的比较运算,下文同理)。此时我们又发现南方有座大山,大山在南方。哇,又恍然大悟。那这么说来大山就生在南方,假如我们想象南方就是内存的某个地址单元。大山就是这个地址单元的值。因此又有等式:*指南针 == 大山。
问题一:这里多了个星号是为什么?(看完后面我希望你能答出这个问题)
再来,我们就傻瓜的认为指针就是我们常用的鼠标在桌面熟悉的那个箭头。我们的箭头在我们的控制下,我们想点哪儿就点哪儿。哈哈,如此神奇。例如我们想点桌面的“记事本”图标。于是我们将箭头指向那个图标,然后双击。便打开了我们以前留下的一些记事。我们就能看到了。从这个简单的操作又可以让我们产生联想了。箭头就好比我们程序里面的指针,我们在想要打开记事本的时候,就箭头指向它。在这个时候,箭头指向了记事本。箭头(指针)== 记事本。在双击打开记事
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
转:http://school.ogdev.net/ArticleShow.asp?categoryid=10&id=6019
函数指针数组的妙用
笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0] ......
发贴前请先读:c/c++ 版“经典”问题解答
C/C++一直都是地球上使用最广泛的编程语言,而我们的C/C++版自然人气也不差,但是一直都有一些狠初级的问题提了又提,并不是说这些问题如何如何的不好,还是如何如何的弱智,这些问题一直都是新手学习的基础,是必须要经过的门槛,所以也有存在的必要,但是提的多了, ......
嵌入式系统由于受功耗、成本和体积等因素的制约,嵌入式微处理器的处理能力与桌面系统处理器相比也存在较大差距,故嵌入式系统对程序运行的空间和时间要求更为苛刻。
通常,需要对嵌入式应用程序进行性能优化,以满足嵌入式应用的性能需求。
1 嵌入式程序优化的类型
&nbs ......
This is Edition 2.2.10 of `The `indent' Manual', for Indent Version
2.2.10, last updated 23 July 2008.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996 Free Software
Foundation, Inc. Copyright (C) 1995, 1996 Joseph Arceneaux. Copyright
(C) 1999 Carlo Wood. Copyright (C) 2001 David Ingamell ......