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

【转】【C\C++语言入门篇】 深入指针

再上一篇,我们介绍了基本调试。之前也说了,之所以把调试放在前面讲是因为后面的文章基本都会用到调试。观察我们的程序到底发生了什么。让我们能够直接明了的看清楚问题的本质。本篇将深入一点介绍指针这个让无数初学者畏惧的东西。希望大家再看完本篇之后能对指针有新的认识,之后不再惧怕它。觉得它就那么回事。那下面我们就努力攻克这个令我们“惧怕”的东西。
我们可能进入大学读计算机相关专业,基本第一门编程语言就是C语言。可能老师们也喜欢跟学生总结整本书难点在什么地方。那么指针必然是老师提到的难点之一。我个人觉得这样的总结还不如不总结,原因很简单,因为这样会给学生心理负担,学到指针的时候那根弦都崩的很紧。从骨子里就认定了它有难度,初学者脆弱的心灵因此而感到惧怕。换个角度,为什么我们不能觉得指针也就那么回事?没有什么特别的嘛,哪里难了嘛!这样不是既有信心又有兴趣去搞定它?说了这么多,只想强调一点,什么东西都报怀疑态度未必是件坏事。指针不是老师说的那么恐怖。好了,下面我们就系统的从几个角度去理解指针。
概念上理解 所谓指针,没学过编程语言的可能会觉得是指南针或者鼠标的指针。呵呵,这种说法虽然差之千里,但是也不是毫无道理。为什么呢?比如指南针,以C语言指针的角度去思考,那么指南针之所以叫指南针因为它始终是指向南方的。对!南方,顿时恍然大悟。联系起来可以想象成:指南针就是指针变量,它指向南方。南方即是指南针这个变量的值。那么 指南针(指针) == 南方(这里的==可以理解成if( a == 100 )里面的比较运算,下文同理)。此时我们又发现南方有座大山,大山在南方。哇,又恍然大悟。那这么说来大山就生在南方,假如我们想象南方就是内存的某个地址单元。大山就是这个地址单元的值。因此又有等式:*指南针 == 大山。
问题一:这里多了个星号是为什么?(看完后面我希望你能答出这个问题)
再来,我们就傻瓜的认为指针就是我们常用的鼠标在桌面熟悉的那个箭头。我们的箭头在我们的控制下,我们想点哪儿就点哪儿。哈哈,如此神奇。例如我们想点桌面的“记事本”图标。于是我们将箭头指向那个图标,然后双击。便打开了我们以前留下的一些记事。我们就能看到了。从这个简单的操作又可以让我们产生联想了。箭头就好比我们程序里面的指针,我们在想要打开记事本的时候,就箭头指向它。在这个时候,箭头指向了记事本。箭头(指针)== 记事本。在双击打开记事


相关文档:

区别java的 C++内存分配 知识,全局,局部,静态变量


预备知识—程序的内存分配 
一个由C/C++编译的程序占用的内存分为以下几个部分 
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 ......

教你理解复杂的C/C++声明

陆其明 译 
原文: 
http://www.codeproject.com/cpp/complex_declarations.asp 
作者:Vikram A Punathambekar 
介绍 
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的 ......

【C/C++】总结常用的函数调用约定

一、函数调用的基本步骤
函数调用大致包括以下几个步骤。
(1)参数入栈:将参数从右向左依次压入系统栈中。
(2)返回地址入栈:将当前代码区调用指令的下一条指令地址压入栈中,供函数返回时继续执行。
(3)代码区跳转:处理器从当前代码区跳转到被调用函数的入口处。
(4)栈帧调整:具体包括:
保存当前栈帧状态 ......

【转】【C\C++语言入门篇】 结构体

前面两篇基本把指针给介绍完了,相信大家对指针已经不是那么陌生了。也不会因为指针和数组之间的关系而导致混淆了。大家可能也迫不及待想了解下后来的知识。今天我们就介绍下结构体。
对于结构体,既然叫结构体,形象上我们可以理解其就是一堆数据集合在一起形成一个结构。就比如一个学生的信息包括:学号、姓名、班级、年 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号