读书人

初始化和赋值的不同

发布时间: 2012-05-11 12:55:37 作者: rapoo

请教高手,初始化和赋值的不同
int i = 3;
int j = i;//初始化首先会创建一个i的复本.然后交给j来保管.

那么
int i = 3;
int j;
j = i;//这样赋值是不是不会创建复本?这样赋值和初始化在运行机制.计算机处理过程中有什么区别呢?请高手详细.




[解决办法]
int j = i;//初始化首先会创建一个i的复本.然后交给j来保管.
-----------------
这本来就错了:哪来的复本?
这里只会用i的值来初始化j。
建议看汇编。
[解决办法]
int j;
j = i;//这样
=================
先用一个随机值初始化j,再给j赋值i。

而int j = i; 是以i的值来初始化j,效率高。
[解决办法]
什么要创建副本?
lz估计和类的复制构造函数和 类的隐式构造搞混了
[解决办法]

探讨
int i = 3;
int j = i;//初始化首先会创建一个i的复本.然后交给j来保管.

那么
int i = 3;
int j;
j = i;//这样赋值是不是不会创建复本?这样赋值和初始化在运行机制.计算机处理过程中有什么区别呢?请高手详细.

[解决办法]
探讨

引用:
int i = 3;
int j = i;//初始化首先会创建一个i的复本.然后交给j来保管.

那么
int i = 3;
int j;
j = i;//这样赋值是不是不会创建复本?这样赋值和初始化在运行机制.计算机处理过程中有什么区别呢?请高手详细.


初始化和赋值的区别根本不在于有没有副本这东西,根本区别只在于一个地方:初始化是从无到……

读书人网 >C++

热点推荐