指针和引用的区别:
1.指针可以为空,引用不可以为空。
2.指针初始化后可以重新指向新对象,引用初始化以为不可以重新绑定新对象,
3.指针可以在初始化时赋值,可以初始化以后通过赋值运算符(=)赋值;引用只能在初始化时赋值。
4.指针是个实体(占内存4byte),引用只是个别名(不占内存)
5.指针sizeof是4byte,引用sizeof是绑定对象的大小。
6.指针是类型安全,引用...
分类:
其他好文 时间:
2014-08-21 19:25:54
阅读次数:
171
没找到具体原因,MSDN看到下面这句,VC是从2008才有这一限制的,感觉就是从语法上对临时变量增加了限定,因为一般说来修改一个临时变量是毫无意义的,通过增加限定,强调临时变量只读语义。虽然实际上修改临时变量并不会有问题。Visual Studio 2008In previous releases ...
分类:
其他好文 时间:
2014-08-21 01:35:43
阅读次数:
206
一、const常量声明时必须同时初始化(和“引用”一样)二、const指针三、const引用引用本身和引用的对象都是const对象,可以用字面值来赋给const引用(普通引用则不行)1 const B=1024;2 const refB=B; //const变量的声明和初始化 3 4 const i...
分类:
编程语言 时间:
2014-08-17 16:53:52
阅读次数:
176
变量引用是变量的别名,常量引用要加const,引用与被引用的东西是同一样。#include #include #include #include #include // using declarations states our intent to use these names fro...
分类:
编程语言 时间:
2014-08-15 22:24:09
阅读次数:
294
C++标准的规定:非常量的引用不能指向临时对象:为了防止给常量或临时变量(只有瞬间的生命周期)赋值(易产生bug),只许使用const引用之。下面的内容转自:http://blog.csdn.net/liuxialong/article/details/6539717概括一下:不能把临时对象作为实参...
分类:
编程语言 时间:
2014-08-14 23:38:16
阅读次数:
255
------------- const指针、const引用、const引用形参 --------------------
【1】const修饰指针和引用
1. 术语“const引用”就是“指向const对象的引用”,习惯说成const引用与非const引用。这点与指针不同,指针中“const指针”与“指向const对象的指针”是不同的。
2. 值得注意的是:const引用和指向const对象...
分类:
编程语言 时间:
2014-08-13 10:34:25
阅读次数:
209
记得在复制构造函数和赋值操作符的参数类型上加上const.正确的复制构造函数应该是X::X(const X&)这种,而不是X::X(X&)这种,这里有两个原因.第一:绑定一个非const引用到一个临时对象是非法的.使用X::X(X&)作为复制构造函数不会允许复制任何特殊表达式的结果.为什么呢.?因为...
分类:
其他好文 时间:
2014-08-10 15:18:30
阅读次数:
195
在看Clang源码的过程中遇到过,返回const引用,于是就去google 了一下返回值以及参数传递等相关的知识。首先,为什么要(const 引用)的返回值?首先&的引用作用是C++独有的特性。其作用相当于传入参数时不经过拷贝,而是实实在在的传入。fun(int &a)。如果在函数内部修改了a的值,...
分类:
编程语言 时间:
2014-07-28 15:39:03
阅读次数:
251
在读《C++ Primer》时,发现之前对const的概念不是很清晰,只知道如何去使用,于是翻开const引用部分又阅读了一遍,发现有两点自己要注意的地方 1、const限定的对象不可以初始化非const引用ex.1 const int src = 512;2 const int &ok_de...
分类:
编程语言 时间:
2014-07-16 23:24:22
阅读次数:
219
0.不要试着从C++编译器的角度理解问题,而是从程序的语义着手。1.控制台标准输入输出流的使用1.1IO对象不可复制或者赋值。因此使用IO对象做参数必须使用非const 引用参数(非const因为对IO对象的读写会改变其状态)。1.2当cin输入非法数据时,fail置为1,当cin遇到文件结尾(ct...
分类:
编程语言 时间:
2014-07-13 23:37:17
阅读次数:
391