明确c++变量的一些概念:初始化,赋值
2011-09-08 16:09
459 查看
初始化:变量定义,指定了变量的类型和标识符,也可以为对象提供初始值。(也可以不提供初始值)
已初始化的:定义时指定了初始值的对象。(未指定初始值的对象,就是没初始化的。变量可以没有初始化)
初始化不是赋值
初始化:指创建变量并给它赋初始值;{ int a = 0;(复制初始化 *容易导致初始化和赋值的迷惑)
int i(1024);(直接初始化)
赋值:是擦除对象的当前值并用新值代替。
*使用=来初始化变量使得许多c++编程新手感到迷惑,他们很容易把初始化当成是赋值的一种形式。
当定义没有初始化式的变量时,系统有时候会帮我们初始化变量。
系统提供什么样的值取决于变量的类型{内置类型/类类型,也取决于变量定义的位置{函数体内/函数体外。
*编译器报错:undefined (未定义)
未定义行为源于编译器不能检测到的程序错误或太麻烦以至无法检测的错误。
*此处的未定义:是指编译器没有定义该语法。。。
程序可能会执行,也可能会崩溃或者产生没有用的值。(不同编译器下程序的动作可能不同)
程序不应该依赖未定义行为
除了用作赋值操作符的左操作数,未初始化变量用作任何其他用途都是没有定义的。
已初始化的:定义时指定了初始值的对象。(未指定初始值的对象,就是没初始化的。变量可以没有初始化)
初始化不是赋值
初始化:指创建变量并给它赋初始值;{ int a = 0;(复制初始化 *容易导致初始化和赋值的迷惑)
int i(1024);(直接初始化)
赋值:是擦除对象的当前值并用新值代替。
*使用=来初始化变量使得许多c++编程新手感到迷惑,他们很容易把初始化当成是赋值的一种形式。
当定义没有初始化式的变量时,系统有时候会帮我们初始化变量。
系统提供什么样的值取决于变量的类型{内置类型/类类型,也取决于变量定义的位置{函数体内/函数体外。
*编译器报错:undefined (未定义)
未定义行为源于编译器不能检测到的程序错误或太麻烦以至无法检测的错误。
*此处的未定义:是指编译器没有定义该语法。。。
程序可能会执行,也可能会崩溃或者产生没有用的值。(不同编译器下程序的动作可能不同)
程序不应该依赖未定义行为
除了用作赋值操作符的左操作数,未初始化变量用作任何其他用途都是没有定义的。
相关文章推荐
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
- C++中,全局阈只能声明、初始化变量; 不能用于赋值、运算、调用函数等
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- 有关c++ 变量的一些关键概念
- C/C++中 关于对 引用变量 赋值的一些规则
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C C++全局变量初始化 initializer element is not constant 错误 c++中为什么不能对全局变量在函数外赋值
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++基础问答(1):通过初始化列表和构造函数内赋值初始化成员变量的区别
- 复习几个C++概念:声明与定义、传值与拷贝构造、初始化和赋值
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- c++ 数组,变量,指针,引用, 初始化,赋值
- 关于C++全局变量和静态变量初始化的一些总结
- C++中的拷贝构造函数和拷贝赋值操作符+const成员变量初始化(5)---《Effective C++》
- C++之一些事一些情--变量初始化
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- 关于C/C++中switch语句case中变量不能初始化赋值的问题
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别