初始化问题

ArdourCareful 2012-01-13 03:17:10
int a = 10;与int a;a=10这两者有没有区别,是不是定义一个变量后,第一次对该变量赋值就叫初始化(不管是不是一句语句还是多条语句).还有初始化与赋值的区别是什么.


...全文
150 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qscool1987 2012-01-14
  • 打赏
  • 举报
回复
搞不懂这种问题有什么好讨论的,汇编下是没有区别的
只要记住局部内置类型使用前记得初始化就可以了
飞天御剑流 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
int a 没有初始化,a的值是随机的
[/Quote]
看见你回答问题差不多一年了,但就是大多数回答是错误的.....
iamnobody 2012-01-14
  • 打赏
  • 举报
回复
第一种效率大于或等于第二种。前者叫初始化,后者是赋值。
薛定谔之死猫 2012-01-14
  • 打赏
  • 举报
回复
木有分别,编译器优化后是一样滴

初始化是相对读取该变量的值说的,读之前设置的值称初始化,一般都说的第一次
weigesl 2012-01-14
  • 打赏
  • 举报
回复
如果int a;是全局变量,默认为0吧。
飞天絮雪 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mingliang1212 的回复:]

第一种效率大于或等于第二种。前者叫初始化,后者是赋值。
[/Quote]
对于内建数据类型(int,float,char,double...)来说这两者没什么区别,对于像数组,struct,union,enum,class类型来说,第一种效率大于或等于第二种。省去了构造和析构的过程。
具体可以看下深拷贝与浅拷贝,拷贝构造函数和赋值函数的区别。
参考我的博客:http://blog.csdn.net/feitianxuxue/article/details/7194905
如有问题请多多指教,咱们一起成长。
AnYidan 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mingliang1212 的回复:]

第一种效率大于或等于第二种。前者叫初始化,后者是赋值。
[/Quote]

++
平凡的思想者 2012-01-14
  • 打赏
  • 举报
回复
就是这样。

[Quote=引用 8 楼 mingliang1212 的回复:]

第一种效率大于或等于第二种。前者叫初始化,后者是赋值。
[/Quote]
Jadenmai 2012-01-13
  • 打赏
  • 举报
回复
int a = 10;stack中分配内存时,直接把上面的内容修改为10
int a; a = 10; stack分配一个整型的大小之后【内容随机】。再通过赋值语句a=10修改里面的内容。

如果不是整型而是自定义的类类型。那么这种差异是可观的。比如
class MyClass {
public:
MyClass(int ival = 0): value(ival){}
private:
int value;
};
MyClass a = 10;和MyClass a; a = 10;毕竟前者只是调用了一个构造函数,变量为10就可以构造出a。而后者先调用了一个构造函数(默认)。之后再调用赋值运算符操作对a进行赋值。而对=号右边又必须要进行一个隐式转换出一个MyClass的临时变量。这种情况下,速度和效率也有很大的差别。你懂得。
IVERS0N 2012-01-13
  • 打赏
  • 举报
回复
汇编级没区别
ArdourCareful 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
int a 没有初始化,a的值是随机的
[/Quote]
a = 10不是对a的初始化吗?
peng_weida 2012-01-13
  • 打赏
  • 举报
回复
一条语句
两条语句
没有初始化的值是未知的
bdmh 2012-01-13
  • 打赏
  • 举报
回复
int a 没有初始化,a的值是随机的

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧