C++ Primer 学习笔记4 变量和基本类型 (变量初始化规则、声明和定义)
2014-09-26 18:52
656 查看
当定义没有初始化的变量时,系统有时候会帮我们初始化变量。这时,系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。
1、内置类型变量的初始化
内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化为0,在函数体里定义的内置类型变量不进行自动初始化。除了用作赋值操作符的左操作数,未初始化的变量用作其他用途都是没定义的。未初始化引起的错误难以发现。
建议每个内置类型的对象都要初始化。虽然这样做并不总是必须的,但是更加容易和安全。
2、类类型变量初始化
类通过定义一个或多个构造函数来控制类对象的初始化。定义对象时如果没有提供初始化,则采用类的默认构造函数进行初始化。
定义和声明
变量的定义为变量分配存储空间,还可以为变量指定初始值。在程序中变量有且仅有一个定义。
声明用于向程序表明变量的类型和名字,定义也是声明,也可以通过extern关键字来声明变量而不定义它。在使用变量之前必须定义或声明变量。
extern声明不是定义,也不分配存储空间。它只是说明变量定义在程序的其他地方。
程序中变量可以声明多次,但是只能定义一次。
extern int i; //declares but dose not define i
int i; //declares and defines i
1. 用来区分相同名字,可以在不同作用域中分别相同
2. 分为:全局、局部、语句
注:在变量首次使用的地方定义变量是个好习惯。
1、内置类型变量的初始化
内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化为0,在函数体里定义的内置类型变量不进行自动初始化。除了用作赋值操作符的左操作数,未初始化的变量用作其他用途都是没定义的。未初始化引起的错误难以发现。
建议每个内置类型的对象都要初始化。虽然这样做并不总是必须的,但是更加容易和安全。
2、类类型变量初始化
类通过定义一个或多个构造函数来控制类对象的初始化。定义对象时如果没有提供初始化,则采用类的默认构造函数进行初始化。
定义和声明
变量的定义为变量分配存储空间,还可以为变量指定初始值。在程序中变量有且仅有一个定义。
声明用于向程序表明变量的类型和名字,定义也是声明,也可以通过extern关键字来声明变量而不定义它。在使用变量之前必须定义或声明变量。
extern声明不是定义,也不分配存储空间。它只是说明变量定义在程序的其他地方。
程序中变量可以声明多次,但是只能定义一次。
extern int i; //declares but dose not define i
int i; //declares and defines i
作用域
1. 用来区分相同名字,可以在不同作用域中分别相同2. 分为:全局、局部、语句
注:在变量首次使用的地方定义变量是个好习惯。
相关文章推荐
- c++ Premier 学习笔记(unit2 变量和基本类型 -声明与定义
- C++ Primer 学习笔记_4_变量和基本类型(续1)
- C++ Primer 学习笔记(第二章:变量和基本类型)
- C++ Primer 学习笔记(一)——变量和基本类型
- 【C++ Primer学习笔记】第2章 变量和基本类型
- C++ Primer 学习笔记_5_变量和基本类型(续2)
- c++ primer 学习笔记 3 变量与基本类型
- Javascript学习笔记一基本数据类型与变量声明
- 《C++ Primer》学习笔记---第2章 变量和基本类型
- c++ Premier 学习笔记(unit2 变量和基本类型-对象与初始化
- c++ primer学习笔记-2变量与基本类型
- c++ Primer学习笔记之第二章 变量和基本类型
- Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
- C++ Primer学习笔记2-变量与基本类型
- [C++ primer 学习笔记][02]变量和基本类型
- 【C++ Primer学习笔记】第2章:变量和基本类型
- C++ primer 学习笔记(第二章:变量和基本类型)
- 《C++ Primer(第5版)》学习笔记:第2章 变量和基本类型
- 【C++ Primer学习笔记】第2章:变量和基本类型
- C++ Primer 学习笔记3 a变量和基本类型