LeftValue 指向内存位置的表达式被称为左值
rightValue 指的是存储在内存中某些地址位置的数值,右值可以出现在赋值号的右边
#include <iostream>
using namespace std;//单独语句,
#define ruiy 10 //不是单独独立的语句所以不用分号,分号是常用编成语言的语句结束符号;
typedef int rui;
变量作用域action scope,是程序的一个区域,三个地方可以定义变量
函数或一个代码块内部声明的变量,局部变量
函数参数的定义中声明的变量,形式参数
在所有函数外部声明的变量,全局变量
初始化局部变量和全局变量
局部变量被定义,系统不会初始化,定义全局变量时系统会自动初始化为下列值
正确地初始化变量是一个良好的编程习惯,程序可能产生意想不到的结果
int 0
全局变量时系统自动初始化为以下值
char ' '
float 0
double 0
pointer NULL;
常量固定值,程序执行期间不会改变 固定的值 字面量
const 常量
常量像常规的变量,只不过常量
a 警报铃声 alarm
退格 backSpace;
form feed character
f
new line
horizontal Tab
vertical Tab
字符串常量 字符串常量是括在单引号
表示宽字符L wchar_t;
字符串constants constants
整型类型
整数,浮点,布尔,字符,字符串 const constants
#define const
#define identified value
const
类型和安全检查不同
宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查
#define ruiy 3
const 数据类型 rui = 5;
宏定义字符替换,没有数据类型的区别,同时这种替换没有类型安全检查
const 是常量的声明,有类型区别,在编译阶段进行类型检查
const常量是一个运行时,程序运行使用,类似一个只读行数据
存储方式
宏定义直接替换 不分配内存 存储于程序的代码段中
const常量需要进行内存分配,存储与程序的数据段
进行内存分配,存储于程序 的数据段
定义直接替换 不分配内存 存储于程序的代码段
定义域
存储
#define ruiy '
' 不进行内存分配
存储于程序的代码段
const #define
宏定义通过#undefine使之前的宏定义失效
const 常量定义后将在定义域内永久有效;
数据类型前放置改变基本类型含义
更能满足各种情况的需求
signed unsigned long short;
long 双精度
signed unsigned
signed unsigned long short;
Storage class;
存储类定义C++程序中变量/函数的范围(可见性)和生命周期
這些说明符放置在他们所修饰的类型之前
存储类定义C++程序中变量/函数的范围
存储变量
存储类定义C++程序中变量/函数的范围(可见性) 生命周期
thread_local(C++11)
c++11 auto关键字不再是C++存储类说明符 register deprecated
deprecated