C语言的笔记
程序 编辑 源程序 *.c 编译 目标程序 *.obj 连接 可执行 *.exe 运行 结果
数据类型
字符类型(char) | ||
基本类型 | 整型(short、int、long、unsigned) | |
实型(浮点型) | 单精度型(float) | |
双精度型(double) | ||
枚举型(enum) | ||
构造类型 | 数组类型([ ]) | |
结构体类型(struct) | ||
共用体类型(union) | ||
指针类型(*) | ||
空类型(void) |
类型名称 | 关键字 | 所占位数 | 取值范围 |
短整型 | short [int] | 16 | -32768~37268 |
无符号短整型 | unsigned short [int] | 16 | 0~65535 |
整型 | int | 32 | -2147483648~2147483647 |
无符号整型 | unsigned [int] | 32 | 0~4294967295 |
长整型 | long [int] | 32 | -2147483648~2147483647 |
无符号长整型 | unsigned long [int] | 32 | 0~4294967295 |
*所占位数是指二进制位数来存放数据本身
①八进制整数的表示以数字0开头,eg:
0234 表示八进制整数(234),所对应的十进制数为2*8^2+3*8^1+4*8^0=156
注意:八进制只有0~7
②十六进制整数的表示以0x开头,eg:
0x234 表示十六进制整数(234),所对应的十进制数为2*16^2+3*16^1+2*16^0
注意:十六进制只有0~F
类型名称 | 关键字 | 字节数 | 取值范围 | 精度(位) |
单精度型 | float | 4 | -3.4*10^-38~3.4*10^38 | 7 |
双精度型 | double | 8 | -1.7*10^-308~1.7*10^308 | 15 |
eg:真正准确的其实是第6位(精度位7),后面的是四舍五入
③指数形式 546E+3和546E3都代表546*10^3
字母E或e前必有数字,其后的数必为整数。
(一个字节有8位)
注意:'a'和"a"是不同的。一个是字符量'a',一个是字符串量"a"。字符串不能用于赋值,而字符可以用于赋值。因此,c='a',对。
c="a",不对。
字符类型
C语言的字符表示是用单引号括起来的一个字符。eg:'A'
注意:'A'和'a'是不同的字符
反斜杠引导的字符称为转义字符
字符类型 | 功能 |
\n | 换行 |
\\ | 输出一个反斜杠 |
\' | 单引号 |
\ddd | 1~3位八进制数所代表的字符 eg:'\101'代表字符'A'(八进制所代表的ASCII码) |
\xhh | 1~2位十六进制数所代表的字符 eg:'\x41'代表字符'A'(十六进制所代表的ASCII码) |
'\012'代表换行符
常量
直接常量 | 数值常量 | 整型常量 |
实型常量 | ||
字符型常量 | 字符常量 | |
字符串常量 | ||
符号常量(标识符定义) |
1、整型常量
eg:
256、-75、0(十进制)
0237、045、0621(八进制,用数字0做前导)
0x28AF、0xED4(十六进制,用数字0x做前导)
435L、350L(长整型常量)
2、实型常量(只能用十进制表示)
eg:28.76、564、03、34E+8、15.78E-2
3、字符常量
'x'、'+'、'\n'、'\101'
4、字符串常量
"changsha"
5、符号常量
#define 标识符 常量数据
eg:#define MAX 1000
#define MIN 10
#define PI 3.14159
#define END '$'
只要遇到标识符,就将其换成对应的常量(为了代码的书写方便)