一.变量:以某一标识符为名,有自己的存储空间,因此它可以被赋值,同时它的值可以被读取和改变。
定义变量的格式:数据类型 变量名(标识符,得自己命名的);
声明变量的格式:#define 变量名(无分号)
定义一个变量是为其分配一块存储空间并命名,一旦定义后它的名字和和其存储空间会相互匹配起来,生死与共,且在一个函数中一个变量只能被定义一次,全局变量,局部变量同理。
声明一个变量是1.告诉编译器,这个名字已经匹配到一块内存上了。
2.告诉编译器,这个名字已经预定了,别的地方不能用这个名字命名了。
定义与声明的区别:定义是开创,而声明是提前说明,声明的时候是没有分配空间的。
全局变量:函数外定义的变量。
范围:定义的一刻起向下,都是它的作用域。
局部变量:主函数中定义的变量。
范围:主函数中。
语句块变量:语句中定义的变量。
范围:该语句('{ }')内。
可见性:全局变量,局部变量,块变量重名时(块变量>局部变量>全局变量)。
例如:int g_max=10;
void main()
{
int a=g_max;
int g_max=100;
int b=g_max; // 在c++中 int b=::g_max;的话g_max取的是全局变量,‘::’为作用域解析符;
printf("%d %d %d",a,g_max,b);
}
这段程序的运行结果为 :10,100 ,100。
常量:1.字面常量:整型,浮点型,字符型。
2.宏定义常量(替换原则)特点:不占内存,预编译之后就不存在了。
3.const 修饰的常变量 特点:只可读取,不可修改,被const修饰后存储位置不发生改变。
且const int 与int const表达的意义相同,但const必须与类型名相搭配使用才可生效,例如
int a,const b;a与b依旧是变量。使用const时,变量一定是初始化了的,否则报错。
且在c语言中const修饰过的变量编译器依旧认为是个变量,而在cpp中认为是个常量(在编译时替换)。
4.枚举类型,枚举常量。
5.字符常量和字符串常量。