本文参考:https://www.runoob.com/cprogramming/c-variables.html
https://blog.csdn.net/xuwqiang1994/article/details/79924310
1.变量的定义
变量定义时向编译器指定了变量类型,编译器为变量开辟内存空间
type variable_list;
type:变量类型,可以是内置的类型或用户自定义类型
variable_list:变量列表,可以一个或者多个
几个例子
int a;
float b,c,d;
用户自定义类型:
typedef struct{
int a;
int b;
int c;
}A;//创建一个叫做A的类型
A a1;//用类型A创建变量a1
2.变量的声明
变量声明时只指定类型和名称,不开辟空间;
变量声明和定义的区别
extern int i; // 是声明,不是定义
int i; // 是声明,也是定义
extern关键字修饰的就只是声明,在程序连接时编译器需要变量的定义。
3.lvalue和rvalue
指向内存的值称为lvalue(locator value,),lvalue可以出现在赋值号的左边或右边
除lvalue外的值就是rvalue,rvalue只能出现在赋值号的右边
lvalue储存在内存中,因此可以被修改,而rvalue只是计算的周期驻留在临时的寄存器中
int var; // var在内存中有确定的对象,是lvalue
var = 4; // 4不在内存中,是rvalue
var = var; // lvalue可出现在=左边和右边
4 = var; // error:rvalue只能出现在=右边