1.转义序列(仅记录一部分)
转义序列 含义
\\ \字符
\' '
\" "
\? ?
\a 报警铃声
\b 退格键
\f 换页符
\n 换行符
\r 回车
\t 水平制表符
\v 垂直制表符
\ooo 一到三为八进制数
\xhh 一个或者多个数字的十六进制数
2.数据类型(Bool类型单独写)
16为编辑器 | 32位编辑器 | 64位编辑器 | |
---|---|---|---|
char | 1字节 | 1字节 | 1字节 |
char* | 2字节 | 4字节 | 8字节 |
short int | 2字节 | 2字节 | 2字节 |
int | 2字节 | 4字节 | 4字节 |
unsigned int | 2字节 | 4字节 | 4字节 |
float | 4字节 | 4字节 | 4字节 |
double | 8字节 | 8字节 | 8字节 |
long | 4字节 | 4字节 | 8字节 |
long long | 8字节 | 8字节 | 8字节 |
unsigned long | 4字节 | 4字节 | 8字节 |
其中,float的精度为6位有效位,double的精度有15位有效位。
_Bool类型在C99中添加,使用时需要添加<stdbool.h>头文件。
C语言认为非0为真,0为假。例如:
#include <stdio.h>
int main()
{
int a,b;
a=0x00;
b=0x12;
if(a&b)
{
printf("ll");
}
return 0;
}
程序运行结果如下:
由结果可以看出,由于a&b为0,即为假,不符合if的条件,也就不会将ll输出。
3.C语言对变量的定义如下:
存储类型 特征修饰 数据类型 变量名;
eg: static volatile int value;
其中,C语言的存储类型有:auto,static,extern,register四种。
auto存储类是所有局部变量默认的存储类,只能修饰局部变量,存储在栈中。auto int a;和int a;的效果一致。
static存储类,静态变量,全局变量和局部变量都可修饰,存储在静态区或者数据段中。
extern存储类,用于定义在其他文件中声明的全局变量或者函数。
register存储类,存储在寄存器或者内存中,无法进行取地址操作。
而对于特征修饰来讲,这里只记录volatile一种。
volatile:使用volatile声明变量值时,系统总是重新从它所在的内存读取数据。(C语言标准规定,如果编译器能够推断出一个表达式无效,也可以选择不执行这个表达式,即使这个表达式中包括了volatile的修饰对象。)
从它所在的内存读取数据。(C语言标准规定,如果编译器能够推断出一个表达式无效,也可以选择不执行这个表达式,即使这个表达式中包括了volatile的修饰对象。)
volatile的应用场景有:中断,多线程和硬件寄存器等。