摘要: 1 编译器组成 预处理器 编译器 汇编器 链接器 2 预编译 预处理指令示例:gcc -E file.c -o file.i 处理所有的注释,以空格代替 将所有的 #define 删除,并且展开所有的宏定义 处理条件编译指令 #if ,#ifdef ,#elif ,#else ,#endif 处理 阅读全文
posted @ 2020-09-01 22:20 nxgy 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1 三目运算符 1.1 用法 三目运算符(a ? b : c)可以作为逻辑运算的载体 规则:当 a 的值为真时,返回 b 的值,否则返回 c 的值 示例 Demo #include <stdio.h> int main() { int a = 1; int b = 2; int c = 0; c = 阅读全文
posted @ 2020-09-01 22:17 nxgy 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 1 C语言中的位运算符 位运算符直接对 bit 位进行操作,其效率最高 位运算符 含义 & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 2 左移和右移注意点 左操作数必须是整数类型,char 和 short 类型会被隐式转换为 int 类型后进行移位操作 右操作数的范围必须是 阅读全文
posted @ 2020-09-01 22:15 nxgy 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1 程序中的短路规则 逻辑或操作符 || 从左到右开始计算 当遇到为真的条件时停止计算,整个表达式为真 所有条件为假时表达式才为假 逻辑与操作符 && 从左向右开始计算 当遇到为假的条件时停止计算,整个表达式为假 所有条件为真时表达式才为真 2 编译器如何处理逻辑表达式中 || 和 && 的混合运算 阅读全文
posted @ 2020-09-01 22:13 nxgy 阅读(173) 评论(0) 推荐(0) 编辑
摘要: C语言中的单引号和双引号 单引号用来表示字符字面量 双引号用来表示字符串字面量 'a' 表示字符字面量,在内存中占 1 个字节,'a'+1 表示 'a' 的 ASCII 码加 1,结果为 `b`` "a" 表示字符串字面量,在内存中占 2 个字节,"a"+1 表示指针运算,结果指向 "a" 结束符 阅读全文
posted @ 2020-09-01 22:07 nxgy 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 1 enum 关键字 1.1 枚举类型的使用方法 enum 是 C 语言中的一种自定义类型 enum 值是可以根据需要自定义的整型值 第一个定义的 enum 值默认为 0 ;默认情况下的 enum 值是在前一个定义值的基础上加 1 enum 类型的变量只能取定义时的离散值 示例 enum Color 阅读全文
posted @ 2020-09-01 22:06 nxgy 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1 struct 关键字 C语言中的 struct 可以看作变量的集合 问题:空结构体占用多大内存? Demo #include <stdio.h> struct TS { }; int main() { struct TS t1,t2; printf("sizeof(struct TS) = %d 阅读全文
posted @ 2020-09-01 21:03 nxgy 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1 const 定义一个只读变量,而不是常量 const 修饰的变量是只读的,其本质还是变量 const 修饰的变量不是真正的常量,它只是告诉编译器该变量不能出现在赋值符号的左边 const 修饰的局部变量在栈上分配空间;const 修饰的全局变量在全局数据区分配空间,所以 const 修饰的变量在 阅读全文
posted @ 2020-09-01 21:02 nxgy 阅读(120) 评论(0) 推荐(0) 编辑