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