指针的引用(*&)与指针的指针(**) 在下列函数声明中,为什么要同时使用*和&符号?以及什么场合使用这种声明方式? void func1( MYCLASS *&pBuildingElement ): 论坛中经常有人问到这样的问题.本文试图通过一些实际的指针使用经验来解释这个问题.仔细看一下这种声明方式,确实有点让人迷惑.在某种意义上,"*"和"&"是意思相对的两个东西,把它们放在一起有什么意义呢?. 为了理解指针的这种做法,我们先复…
本文转载而来,转载出处:http://www.cppblog.com/doing5552/archive/2010/09/28/127994.html 在下列函数声明中,为什么要同时使用*和&符号?以及什么场合使用这种声明方式?  void func1( MYCLASS *&pBuildingElement ): 论坛中经常有人问到这样的问题.本文试图通过一些实际的指针使用经验来解释这个问题.仔细看一下这种声明方式,确实有点让人迷惑.在某种意义上,"*"和"&…
指针与引用  1. 指针 (1) 指针是一个变量(实体),存储的是一个地址,指向内存的一个存储单元,指针可以为空 (2) 指针可以为空,在声明定义时可以不初始化 (3) 指针在初始化之后可以重新指向其他的存储单元 (4) 指针可以有多级 (5) 指针使用时需要解引用 (6) sizeof指针得到的是指针本身大小(所指向的变量或对象的地址) (7) 指针的自增是地址的改变而不是指针所指向变量的改变 (8) 程序为指针变量分配内存区域 2. 引用 (1) 引用是原变量的一个别名,跟原来的变量实质是同…
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它.(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递. 如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来 的值.我们用下边的代码说明一下问题: ; void func(int *p) { p = &m_value; } int main(int arg…
声明指针: //指针声明 * 号左右的空格是可选的,下面的定义都是正确的 int *pointer1; int* pointer2; int*pointer3; int * pointer4; //注意: pointer5 是指针而 pointer6 不是 int *pointer5, pointer6; //pointer7 和 pointer8 都是指针 int *pointer7, *pointer8; 指针的类型和指针所指向的类型: //指针的类型是int*,表示为int对象的指针 //…
在看了一篇文章以后,http://coolshell.cn/articles/7992.html,说的是C和C++之间的缺陷,当然这篇文章说的非常高深了.所以就找了一些资料,分析了这两者的区别 在<Effective c++>一书中页介绍了关于指针和引用的区别.     值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值.函数的传值有两种,一个是值传递:一个地指针传递. 一.引用简介     引用就是某一变量(目标)的一个别名,对引用的操作与对变量直…
接着回顾函数.指针和应用. 函数 1.多维数组作为形参时,第一维的大小可以省略(也可以不省略),但是其他维的大小必须指定.比如二维数组形参,int array[3][]不正确,int arry[][10]正确.因为实参传来的是数组的起始地址,在内存中按行存放,但并不区分行和列,如果在形参中不指定列数,则系统无法确定应为多少行多少列. 2.在C++中,可以为参数指定默认值,在函数调用时,没有指定与形参相对应的实参就自动使用默认值.C++函数的默认参数可以是常数,也可以是全局变量或全局常量,甚至可以…
[C++自我精讲]基础系列一 指针与引用   一 前言   指针.引用.指针与引用区别. 二 指针   变量:代码中常常通过定义变量来申请并命名存储空间,并通过变量的名字来使用这段存储空间. //变量 int nNum; //声明名字为nNum的int型存储空间 nNum = ; //nNum存储值100 nNum = ; //改变nNum存储值200 指针:又叫一级指针,用来指示一个内存地址的变量.对于一个类型T(int.char.folat...),T*就是指向T的指针类型,一个T*类型的变…
题目 写一个树的插入和遍历的算法,插入时按照单词的字典顺序排序(左边放比它"小"的单词,右边放比它"大"的单词),对重复插入的单词进行计数. 程序源码 #include <iostream> #include <cstring> #include <sstream> //vs2010中不加入这句话不能使用cin和cout,用gcc编译不用加 using namespace std; struct Tnode { string wo…
自己看书时的一些理解,可能有错误的地方.随着指针的使用增多,会不断修改这篇文章的内容,过去错误的会用划线划去后保留. 1.对引用.指针.常量引用.指向常量的指针.常量指针的理解 //对引用.指针.常量引用.指向常量的指针.常量指针的理解 int main() { //引用 int a = 1; int &r_a = a;//只要是引用都必须初始化 r_a = 5;//引用不是一个对象,但可以通过改变引用来间接改变引用对象的值 std::cout << "引用 " &…