C语言系列
- C语法部分
- C内存部分
- C高级部分
C语法部分
最基础的数据可以分为两种:常量和变量。
1.常量
在程序执行过程中不会发生改变的量,通常分为:
- 整形常量
例如1234之类的数据默认使用的是10进制。
整数除了用10进制表示之外还可以用8进制和16进制来表示。
带前缀为0的常量表示为8进制。例如:0123。
带前缀0x的常量表示为16进制。例如:0x123。 - 浮点常量
C语言的实数只有10进制,分为单精度和双精度。
表示方法为小数和指数。 - 指数常量
用 e 或 E 来代替值为10的底数
例如:
1.1e+10 1.110^(10)
1.2e-10 1.110^(-10)
正数的符号可以省略不写 - 字符常量
用单引号’ '引起来表示一个字符。
计算机识别的时候是只能识别字符对应的ASCII的值
所以可以把字符常量看做一个字节的正整数
‘A’=65 ‘a’=96 ‘0’=48 - 字符串常量
用双引号" "引起来的一串字符来表示一个字符串
字符串默认以\0结尾。所以"123"占用了4个字节
判断字符串的机制为直到检测到\0。
所 "123\0"还是占用4个字符。 - 标识常量
#define <标识常量名称> <常量>
是在预处理阶段的无差别替换,不等于 typedef
定义宏后,可以在后面的宏中使用前面的宏
2.变量
- 所谓变量在程序执行过程中被允许改变其值的量。
- 变量在程序中用变量名表示,变量名由用户根据其用途任意命名。
- 变量命名规则:变量名由字母、数字、下划线组成,不能以数字开头,不能和C的关键字重名。
- 变量的声明本质是在程序运行时向系统申请一块内存,因此变量占据存储空间的大小由其数据类型决定。
- 变量在内存空间中的存储的位置,其首地址被称为变量的地址。
- 变量在程序中使用时,必须预先说明它们的存储类型和数据类型。
- 变量说明的一般形式是:<存储类型> <数据类型 > <变量名> ;
1.存储类型
存储类型包括:
- auto
auto 被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存,因此它申明的通常都是局部变量,其初始值默认为随机值。在没有额外说明的情况下默认为是 auto 类型,所以声明的时候可以省略掉关键字 auto。 - register
register 称为寄存器型,是将变量放入CPU的寄存器中以加快程序的运行速度,如申请失败就视作 auto 类型。
register 变量必须是能被CPU所接受的类型。这通常意味着 register 变量必须是一个单个的值,并且长度应该小于或者等于整型的长度。不能用“&”来获取 register 变量的地址。
由于寄存器的数量有限,真正起作用的 register 修饰符的数目和类型都依赖于运行程序的机器。
在某些情况下,把变量保存在寄存器中反而会降低程序的运行速度。因为被占用的寄存器不能再用于其它目的;或者变量被使用的次数不够多,不足以装入和存储变量所带来的额外开销。