期末突击-C 语言程序设计

1.注释语句不可以嵌套

2.(int)强制类型转换要加括号

3.L 只用于长整型标识 1.111e3L 不合法

4.0x+ 数字表示十六进制整形常量,0 开头则为八进制整形常量 无位数限制,按类型范围截断

\x+ 数字作为字符转义 会返回 16 进制对应 ASCII 码值的字符 这里要注意不是\0x 取位限制两位至 255

+数字则是 8 进制 只取前三位

如果你要输出这些进制的数,会直接输出,不会带这些符号

例如用 %x 输出 16 输出的是 10 不是 0x10

%x 十六进制 %o 八进制

5.负数按补码存 源码取反再加一是补码

6.scanf 中 %d 也是贪婪匹配

7.%d 输出浮点类型直接 0,注意是不是用 %d 输出的

但 %f 能输出整型,带.0

8.整型常量的除法返回值一定是整型,无论接的变量的数据类型

Float a=2/3 a 还是等于 0

所以小数初始化除数一定一定要加.0 啊

9.逗号表达式优先级最低,小于赋值表达式

10.if 后紧跟 else 不能有别的语句

if(a==1)b=2;c=3;else d=4;不合法

11.符号常量可以用来声明数组

12.static 改变的是函数的生存期 而非作用域;只是数值不刷新 还是不能域外引用

13.关注函数中变量的初始值,有的根本不是 0

14.阶乘用递归

15.宏定义函数不会添括号,只是字符替换

16.函数的形参会占用(栈区的)存储单元

17.fwrite 专门向文件写入数据块

18.scanf 的第一个参数一定是字符串常量

19.switch 后的表达式必须是整型类型;case 后的标签必须是整型常量表达式(比如 10'a'3+5 等),绝对不能是浮点数(如 3.142.0),也不能是变量、浮点表达式

20.C 语言中 main 函数必须返回 int 类型值

21.sizeof 是一个运算符 而不是函数 因为 sizeof 括号可选

22.#include <stdio.h> 用于引入标准输入输出库

23.文件指针的位置由打开方式决定 并不是总是从头开始

24.C 语言中数组下标不能是负数

25.C 语言中语句必须以;结尾

26.scanf 函数的第一个参数必须是字符串常量

27.在 C 语言中,所有函数之外定义的变量 被称为 全局变量

在函数内部才是自动变量

28.C 语言中,**数组下标 [] 的优先级高于解引用 *******,所以声明一个指向含有 10 个元素的一维字符型数组的指针,即先用[]判断是不是数组 再用*判断是不是指针

29.指针相减返回的是元素个数,不是字节数

30.gets,strcpy,scanf 都不会检查缓冲区溢出的问题

31.malloc 返回的指针所指向的内存空间不会自动初始化

32.C 语言中全局变量在程序中任何位置都可以访问

33.和指针直接相关的操作里,******* 永远干不过 []/()/ 后置****++**—— 这就是为什么 *p++*(p++)*arr[0]*(arr[0]),而不是你直觉里的 (*p)++/(*arr)[0]