【转】【C\C++语言入门篇】 深入指针
再上一篇,我们介绍了基本调试。之前也说了,之所以把调试放在前面讲是因为后面的文章基本都会用到调试。观察我们的程序到底发生了什么。让我们能够直接明了的看清楚问题的本质。本篇将深入一点介绍指针这个让无数初学者畏惧的东西。希望大家再看完本篇之后能对指针有新的认识,之后不再惧怕它。觉得它就那么回事。那下面我们就努力攻克这个令我们“惧怕”的东西。
我们可能进入大学读计算机相关专业,基本第一门编程语言就是C语言。可能老师们也喜欢跟学生总结整本书难点在什么地方。那么指针必然是老师提到的难点之一。我个人觉得这样的总结还不如不总结,原因很简单,因为这样会给学生心理负担,学到指针的时候那根弦都崩的很紧。从骨子里就认定了它有难度,初学者脆弱的心灵因此而感到惧怕。换个角度,为什么我们不能觉得指针也就那么回事?没有什么特别的嘛,哪里难了嘛!这样不是既有信心又有兴趣去搞定它?说了这么多,只想强调一点,什么东西都报怀疑态度未必是件坏事。指针不是老师说的那么恐怖。好了,下面我们就系统的从几个角度去理解指针。
概念上理解 所谓指针,没学过编程语言的可能会觉得是指南针或者鼠标的指针。呵呵,这种说法虽然差之千里,但是也不是毫无道理。为什么呢?比如指南针,以C语言指针的角度去思考,那么指南针之所以叫指南针因为它始终是指向南方的。对!南方,顿时恍然大悟。联系起来可以想象成:指南针就是指针变量,它指向南方。南方即是指南针这个变量的值。那么 指南针(指针) == 南方(这里的==可以理解成if( a == 100 )里面的比较运算,下文同理)。此时我们又发现南方有座大山,大山在南方。哇,又恍然大悟。那这么说来大山就生在南方,假如我们想象南方就是内存的某个地址单元。大山就是这个地址单元的值。因此又有等式:*指南针 == 大山。
问题一:这里多了个星号是为什么?(看完后面我希望你能答出这个问题)
再来,我们就傻瓜的认为指针就是我们常用的鼠标在桌面熟悉的那个箭头。我们的箭头在我们的控制下,我们想点哪儿就点哪儿。哈哈,如此神奇。例如我们想点桌面的“记事本”图标。于是我们将箭头指向那个图标,然后双击。便打开了我们以前留下的一些记事。我们就能看到了。从这个简单的操作又可以让我们产生联想了。箭头就好比我们程序里面的指针,我们在想要打开记事本的时候,就箭头指向它。在这个时候,箭头指向了记事本。箭头(指针)== 记事本。在双击打开记事
相关文档:
Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
&n ......
原文:http://blog.csdn.net/jackyvan/archive/2010/01/15/5193693.aspx
其实VIM也能把编译 调试集成在一起,像是一个IDE一样。
首先现在VIM的源码,因为要集成调试环境的话需要重新编译VIM才行,所以我们不如重新安装一个。
VIM的现在地址:
http://www.vim.org/sources.php
然后下载VIMGDB,这是vim的集成调试环境的 ......
陆其明 译
原文:
http://www.codeproject.com/cpp/complex_declarations.asp
作者:Vikram A Punathambekar
介绍
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的 ......
方法一:使用另一个实现类分装类的私有成员和函数,这种方法称为Pimpl方法。
test.h
#pragma once
#include "shared_ptr.hpp"
class CTest
{
public:
CTest(void);
~CTest(void);
void DoSomething();
private:
& ......