« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
☆★☆★☆★☆★☆★☆ 生活的点点记录,以及一些体会...........
喜欢是淡淡的爱,爱是深深的喜欢.
时间会见证一切.......................
欢迎大家指出错误,共同进步..........
期待中..............................
☆★☆★☆★☆★☆★☆ |
Blog信息 |
blog名称: 日志总数:162 评论数量:312 留言数量:0 访问次数:946216 建立时间:2005年5月17日 |

| |
[读书笔记]引用与指针的比较: 软件技术
oceanblue 发表于 2005/6/22 20:44:27 |
(1)引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值.
(2)不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL.
(3)引用一旦被初始化为指向一个对象,它就不能被改变不另一个对象的引用;而指针在任何时候都可以改变为指向另一个对象.给引用赋值并不是改变它和原始对象的绑定关系.
(4)引用的创建和销毁并不会调用类的拷贝构造函数
(5)在语言层面,引用的用法和对象一样;在二进制层面,引用一般都是通过指针来实现的,只不过编译器帮我们完成了转换.
总的来说:引用既具有指针的效率,又具有变量使用的方便性和直观性.
1值传递
void Func(int x)
{
x=x+10;//修改的是n在堆栈中的拷贝x
}
int n=0;
Func(n);
cout<<"n="<<n<<endl;//n=0
2指针传递
void Func2(int *x)
{
(*x)=(*x)+10;//修改指针x指向的内存单元的值
}
int n=0;
Func(&n);
cout<<"n="<<n<<endl;//n=10
3.引用传递
void Func3(int &x)
{
x=x+10;//修改的是x引用到的对象n
}
int n=0;
Func3(n);
cout<<"n="<<n<<endl;//n=10 |
|
回复:引用与指针的比较: 软件技术
vinz(游客)发表评论于2007/12/19 11:47:13 |
|
回复:引用与指针的比较: 软件技术
快乐生活(游客)发表评论于2007/4/7 14:13:59 |
|
» 1 »
|