变量的声明与存储类型
auto存储类
属于一时性存储,其存储空间可以被若干变量多次覆盖使用。
register存储类
存放在通用寄存器中。
extern存储类
在所有函数和程序段中都可引用。
static存储类
在内存中是以固定地址存放的,在整个程序运行期间都有效。
sizeof 操作符
sizeof (类型名)
“类型名”所指定的类型或“表达式”的结果类型所占的字节数。
位运算
按位与(&)
按位或(|)
按位异或(^)
取反(~)
左移运算(<<)
右移运算(>>)
右移后,低位:舍弃
高位:无符号数:补0
有符号数:补“符号位”
强制类型转换
类型说明符(表达式)
或(类型说明符)表达式
强制类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型。
自定义数据类型
为一个已有的数据类型另外命名—typedef
typedef
已有类型名 新类型名表;
枚举类型—enum
enum
枚举类型名 {变量值列表};
enum weekday {sun,mon,tue,wed,thu,fri,sat};
结构体——结构的声明
struct
结构名
{数据类型 成员名 1;
数据类型 成员名 2;
…
数据类型 成员名 n;
};
联合体
union 联合名
{数据类型 成员名 1;
数据类型 成员名 2;
…
数据类型 成员名 n;
};
无名联合
struct aircraft
{
int wingspan;
int passengers;
union
{
float fuel_load;
float bomb_load;
int pallets;
};
} fighter, bomber, transport;