1.字符常量如'$'是存储在int中的,但实际上只使用int的一个字节来存储'$'的编码
2.printf的返回值:返回打印的字符的个数,如果有输出错误,那么返回一个负数
scanf的返回值:返回成功读入的项目个数,如果没有读到任何项目(比如它期望读入一个数字,但是你输入了一个非数字的情况)则返回0。当检测到文件结尾的时候,返回EOF(EOF是stdio.h中定义的特殊值。一般宏定义为-1)
3.数组初始化是从静态区把一个字符串复制给数组,而一个指针的初始化只是复制字符串的地址。
4.calloc相对于malloc来说的特点之一就是前者会把块中的所有位置都置唯0.
5.为什么使用指针:1,跨函数的共享 2.堆内存相关操作必须用指针 3.优化函数的传参。
6.清空缓冲区stdin->_IO_read_ptr = stdin->_IO_read_end;
7.计算struct的大小:两条原则:
①每个成员的偏移量都必须是当前成员所占内存大小的整数倍如果不是编译器会在成员之间加上填充字节。
②当所有成员大小计算完毕后,编译器判断当前结构体大小是否是结构体中最宽的成员变量大小的整数倍 如果不是会在最后一个成员后做字节填充。
而union的大小取决于他所有的成员中占用空间最大的一个成员的大小。
8.转义字符的表示方法总结: