数据类型
C语言的数据类型有很多种,包括字符数据类型(char)、整型(int)、浮点型(float、double)等等,但是要注意,C语言是没有字符串类型的。
那么,为什么C语言会出现这么多类型呢?
类型的大小可以用sizeof关键字(注意:sizeof是关键字,不是函数)来计算。
为什么C语言要有那么多类型,因为这样可以分别表示生活中不同的东西,不同的数据,整型,字符型,浮点型,不同浮点型不同的精度又可以区分很多数据。
char占一个字节,short占两个字节,int占四个字节,一般来说sizeof(long)>=sizeof(int),有时是4,有时是8,取决于编译器
变量常量
定义变量的方法:
数据类型 变量名 = 初值;
数据类型 变量名;
变量的分类
变量分为全局变量和局部变量
寻找变量遵循就近原则,即出现全局变量和局部变量同名时,根据所处作用域来判断使用全局还是局部。
变量的作用域和生命周期
作用域:一段代码所在的执行区域
局部变量的作用域:变量所在的局部范围
全局变量的作用域:整个工程
生命周期:代码从创建到销毁的时间段
局部变量的生命周期:从进入作用域开始,到作用域生命周期结束为止
全局变量的生命周期:整个程序的生命周期
当没有给全局变量一个初始值时,编译器会默认将其初始化为0,如果是指针,会默认它是空指针。
常量
常量分为一下几种:
1.字面常量
2.const修饰的常变量
3.#define定义的标识符常量
4.枚举常量(enum)
字面常量
3.14;
1000;
'w';
const修饰的常变量
const float pai = 3.14;
pai = 5.14;//这里是不能直接修改的
const修饰的常变量本质是变量,因为它不可以在数组定义时指定大小(C99之前的版本),只是不可以直接修改成其他值而已,但是这并不代表它不可改变,例如上述例子,可以用pai++;来改变pai的值,但是不能pai += 1;
常变量:指具有常属性的变量,但本质是变量
#define定义的标识符常量
#define定义的标识符常量是常量,可以用在数组的定义中
#define可以用来定义常量和宏,但是其定义的宏是无法调试的,并且容易因为优先级导致在不同的地方出现错误。
define:预处理指令,是一个定义符号,宏作替换
枚举常量
enum Sex
{
MALE;//0
FEMALE;//1
SECRET;//2
};
枚举常量默认从0开始,依次向下递增1
字符串
由双引号引起来的淄川字符成为字符串字面值,简称字符串
字符串的结束标志是一个为'\0'的转义字符,在计算字符串长度时(strlen("xxxxx"))不包括'\0',但是sizeof时,算
转义字符
转义字符是指将一些东西转义为另一种意义,例如'\n'就会被转义会换行
'\n'换行:回到行首再到下一行
'\r'回车:回到行首
注释
C语言风格的注释:/* */
C++风格的注释://
C++风格的注释每次只能注释一行,而C语言风格的注释不能嵌套注释,嵌套注释会出问题