【转】【C\C++语言入门篇】 深入指针
再上一篇,我们介绍了基本调试。之前也说了,之所以把调试放在前面讲是因为后面的文章基本都会用到调试。观察我们的程序到底发生了什么。让我们能够直接明了的看清楚问题的本质。本篇将深入一点介绍指针这个让无数初学者畏惧的东西。希望大家再看完本篇之后能对指针有新的认识,之后不再惧怕它。觉得它就那么回事。那下面我们就努力攻克这个令我们“惧怕”的东西。
我们可能进入大学读计算机相关专业,基本第一门编程语言就是C语言。可能老师们也喜欢跟学生总结整本书难点在什么地方。那么指针必然是老师提到的难点之一。我个人觉得这样的总结还不如不总结,原因很简单,因为这样会给学生心理负担,学到指针的时候那根弦都崩的很紧。从骨子里就认定了它有难度,初学者脆弱的心灵因此而感到惧怕。换个角度,为什么我们不能觉得指针也就那么回事?没有什么特别的嘛,哪里难了嘛!这样不是既有信心又有兴趣去搞定它?说了这么多,只想强调一点,什么东西都报怀疑态度未必是件坏事。指针不是老师说的那么恐怖。好了,下面我们就系统的从几个角度去理解指针。
概念上理解 所谓指针,没学过编程语言的可能会觉得是指南针或者鼠标的指针。呵呵,这种说法虽然差之千里,但是也不是毫无道理。为什么呢?比如指南针,以C语言指针的角度去思考,那么指南针之所以叫指南针因为它始终是指向南方的。对!南方,顿时恍然大悟。联系起来可以想象成:指南针就是指针变量,它指向南方。南方即是指南针这个变量的值。那么 指南针(指针) == 南方(这里的==可以理解成if( a == 100 )里面的比较运算,下文同理)。此时我们又发现南方有座大山,大山在南方。哇,又恍然大悟。那这么说来大山就生在南方,假如我们想象南方就是内存的某个地址单元。大山就是这个地址单元的值。因此又有等式:*指南针 == 大山。
问题一:这里多了个星号是为什么?(看完后面我希望你能答出这个问题)
再来,我们就傻瓜的认为指针就是我们常用的鼠标在桌面熟悉的那个箭头。我们的箭头在我们的控制下,我们想点哪儿就点哪儿。哈哈,如此神奇。例如我们想点桌面的“记事本”图标。于是我们将箭头指向那个图标,然后双击。便打开了我们以前留下的一些记事。我们就能看到了。从这个简单的操作又可以让我们产生联想了。箭头就好比我们程序里面的指针,我们在想要打开记事本的时候,就箭头指向它。在这个时候,箭头指向了记事本。箭头(指针)== 记事本。在双击打开记事
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
&n ......
C及传统C++
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#include <iomanip.h> //参数化输入/输出 ......
方法一:使用另一个实现类分装类的私有成员和函数,这种方法称为Pimpl方法。
test.h
#pragma once
#include "shared_ptr.hpp"
class CTest
{
public:
CTest(void);
~CTest(void);
void DoSomething();
private:
& ......