学习Linux C编程之数据类型
一、变量与常量
1. 变量
局部变量
在函数内定义说明,作用域为函数内,离开函数再调用即为非法。
注意:
1.主函数定义主函数用,不能被其他函数用,主函数也不能用其他函数定义变量。
2.形参属于被调函数局部变量,实参属于主调函数局部变量。
3.允许不同函数使用相同变量名。
4.复合语句可定义变量,作用域在复合语句内
全局变量
又称外部变量,函数外定义,属于源程序文件,作用域为整个源程序。
注意:若全局变量与局部同名,在局部作用域内,外部变量不起作用
2. 常量
const 在作用域内不会改变,即能被访问、被读,不能被写,被赋值。
二、基本内置类型
三、乱世枭雄:static与extern
staic使当前源文件内变量存放在静态数据区生命周期持续到程序结束
extern可使其他源文件调用本源文件全局变量
四、铁布衫:const
能使变量数据可访问,不可修改
学习技巧为去掉类型,看const修饰谁,谁就是readonly
五、隐形刺客:auto
会使当前变量在内存栈上进行分配
六、闪电飞刀:register
可在频繁进行操作的变量上声明为register类提高运行速度,慎用
七、专一王子:volatile
防止编译器省事,每次对值访问,都会从内存、寄存器里读取,保证数据一致,多在多线程中出现。
八、typedef
typedef作用是给变量起个容易记的新名字/简化复杂的类型声明
Typedef mynameistom tom:给mynameistom新名字tom
九、枚举
Enum:
enum为自定义变量 是对一个变量取值范围的限定,花括号内是取值范围
Enumenum_type_name
{
ENUM_CONST_1,
ENUM_CONST_2,
.............
ENUM_CONST_n
}enum_variable_name;
十、联合体
和结构相似,但结构中成员有各自的内存空间,一个结构变量总长度是各成员长度之和,而联合,各成员共享一段内存空间,一个联合变量的长度为各成员中最长的长度。
union 联合名
{
成员表
};