C 和指针****
第一章 快速上手
空白和注释
/* 内容*/ 此注释可以多行多行注释不一定会在编译的时候删除(代码的注释可能不愿如意)所以推荐 #if 0 #endif 宏注释
预处理指令
预处理有点像内容替换stdlib.h中 EXIT_SUCCESS 和 EXIT_FAILURE 符号
其它
while( (ch = getchar()) != EOF && ch != '\n')//这样写简单明了getchar() 读取到结尾会返回 EOF 不能用NULL与之替换
第二章 基本概念
环境
翻译环境执行环境有时候翻译环境不一定能执行生成的文件,比如交叉编译,将翻译放在其它操作系统上。
文件名约定
源文件.c目标文件:UNIX .o MS-DOS .obj
编译和链接
GCC指令:-E 预处理指的的源文件-S 编译指的的源文件-C 编译汇编指定的源文件-O 编译成可执行文件-I include 包含文件的目录-g 生成调试信息-D 指定一个宏-W 不生成警告信息
词法规则
字符
要注意三字符:'??=' 与 ‘#’是相等的,所以有了转义字符\a鸣声\b回退\f进纸字符\n换行\r回车\t水平制表\v垂直制表\ddd8进制\xddd16进制
第三章 数据
基本数据类型
limits.h 指明了变量的极限值 (整数类型)float.h 指明了浮点变量的极限值指针
typedef
typedef char* p_char;p_char a;//与 char * a; 相等与define 的区别就是可以区别类型
常量
int const * p;//指向常量的指针,不能修改指向地址的值,可以修改指向的地址int * const p;//指向整型的常量指针,不能修改指向的地址,可以修改指向地址的值
作用域
externstatic
存储类型
auto:默认的static:静态变量register:寄存器