C语言期末笔记(一)
C语言复习过几遍,所以这里记录一些有点难记的东西。
数据类型
大小
整数类型:
short 2字节
int 4字节
long 8字节浮点类型:
double 8字节
float 4字节
定义float类型时需写成:float num = 0.5f;(小数默认是double)字符类型:
char 1字节
可以表示ASCLL码中所有的字符,不能表示中文等
占位(p73)
%占位:
printf格式化输出函数,%占位时有以下参数:%[占位长度][.精确位数(四舍五入)]占位格式
- %d 为整数占位
- %hd 为short整数占位
- %ld 为long整数占位
- %u 为unsigned整数占位
%lu,%hu..
对unsigned赋值负数,补码的首位依然被认为是1,但输出时这个1是会带入二进制计算的 - %e 指数
例:printf("%e",123.456);输出:1.234560e+002
例:printf("%13.2e",123.456);输出:(四个空格)1.23e+002 - %E %e的大写
- %i 等同于%d
- %o 八进制输出
- %x 十六进制输出,小写
- %X 十六进制输出,大写
- %g 自动选择%f或者%e输出,小写
- %G 自动选择%f或者%E输出,大写
- %s 字符串
科学计数法
1 |
|
舍入舍出
浮点型格式化输出,四舍五入:
1 | float a; |
浮点型强制转化,直接丢小数点后的
1 | printf("%f\t%d\n", a, (int)a); |
转义字符
| 转义字符 | 字符值 |
|---|---|
\' |
‘ |
\" |
“ |
\? |
? |
\\ |
\ |
\a |
警告 |
\b |
退格 |
\f |
换页 |
\n |
换行 |
\r |
回车 |
\t |
水平制表符 |
\v |
垂直制表符 |
\o、\oo、\ooo,o代表一个八进制数字 |
与该八进制码对应的ASCLL字符 |
\xh[h..],h代表一个十六进制数字 |
与该十六进制码对应的ASCLL字符 |
ASCII码
常见ASCII码:
‘ ‘: 32
‘0’: 48
‘A’: 65
‘a’: 97
运算符
| 优先级 | 运算符 | 含义 | 运算对象个数 | 结合方向 |
|---|---|---|---|---|
| 1 | ( ) | →👉 | ||
| [ ] | ||||
| -> | ||||
| . | ||||
| 2 | ! | 1 | ←👈 | |
| ~ | ||||
| ++ | ||||
| -- | ||||
| - | ||||
| (类型) | ||||
| * | ||||
| & | ||||
| sizeof | ||||
| 3 | * | 2 | →👉 | |
| / | ||||
| % | ||||
| 4 | + | 2 | →👉 | |
| - | ||||
| 5 | << | 2 | →👉 | |
| >> | ||||
| 6 | < <= > >= | 2 | →👉 | |
| 7 | == | 2 | →👉 | |
| != | ||||
| 8 | & | 2 | →👉 | |
| 9 | ^ | 2 | →👉 | |
| 10 | | | 2 | →👉 | |
| 11 | && | 2 | →👉 | |
| 12 | || | 2 | →👉 | |
| 13 | ? : | 3 | ←👈 | |
| 14 | = += -= *= /= %= >>= <<= &= ^= |= | 2 | →👉 | |
| 15 | , | →👉 |
文件操作
1. 文件类型指针
(p333)
用纸质笔记记录了。准备在C语言期末笔记(二)里面写
文件操作例子
1 |
|
例题
魔法阵
思路
| 第一排:if is middle: init 1; else: {row = a - 1;// ↓ col++;//→} |
右上角:row++;//↓ | |
| row--;//↓ col++;//→ |
row--;//↓ col++;//→ |
最右列: row--;//↑ col = 0;//|← |
| row--;//↓ col++;//→ |
row--;//↓ col++;//→ |
|
1 | if 已占数字: |
1 |
|
易错点
默认输出六位
1
printf("%f",f);
反常识define
1
2switch不break就继续走fseek(fp, 0L, 2);中,最后那个才是指示从哪儿开始的,即SEEK_END=2