整理笔记
typedef声明
通过使用typedef为一个已有的类型取一个新的名字。
typedef type newname;
例如 下列语句会告诉编译器,status是int的另一个名字
typedef int status;
进而下面的声明是完全合法的,且定义了一个整型变量identification
status identification;
枚举类型
枚举类型声明一个可选的类型名和一组标识符,用来作为该类型的值。每个枚举数是一个枚举类型的常数。创建枚举需要关键字enum
enum enum-name { list of names } var-list;
enum-name是枚举类型的名称。名称列别list of names用逗号","分割。
例如下列举例定义了一个颜色枚举
enum color { red, green, blue } c;
c = blue;
默认情况下,第一个名称的值为0,第二个名称的值为1,以此类推...也可以给名称赋予一个特殊的值。下面定义red的初始值为5,下面green的值就为6,blue为7,以此类推。
enum color { red = 5, green, blue };
变量类型
定义变量就是告诉编译器在何处创建变量的存储以及如何创建变量的存储。同C语言一样
使用多个文件且只在一个文件中定义变量(定义变量的文件再程序连接时可用的),可以使用extern关键字再任何地方进行声明。虽然可以在C++程序中多次声音一个变量,但变量只能在某个文件、函数或代码块中被定义一次。
#include<iostream>
using namespace std;
//声明变量
extern int a, b;
extern int c;
extern float f;
int main()
{
int a, b;
int c;
float f;
a = 10;
b = 20;
c = a + b;
cout << c << endl;
f = 70.0 / 3.0;
cout << f <<endl;
return 0;
}
上面代码实现后的结构为
30
23.3333
C++中的左值(Lvalues)和右值(Rvalues)
两种类型的表达式
左值(Lvalues):指向内存位置的表达式被称为左值
右值(Rvalues):指的是存储在内存中某些地址的数值。不能对其进行赋值的表达式。
作用域
- 在函数或一个代码块内部声明的变量,称为局部变量
- 在函数参数的定义中声明的变量,称为形式参数
- 在所有函数外部声明的变量,称为全局变量
初始化局部变量和全局变量
当局部变量被定义时,系统不会对其初始化,必须自行初始化,定义全局变量时,系统会自动初始化初始值。
数据类型 | 初始化默认值 |
int | 0 |
char | '\0' |
float | 0 |
double | 0 |
pointer | NULL |