C语言中若省略函数返回类型的申明则函数类型为int。表达式 (3x5) 的值恒为1。C 语言中的关系运算符、、、是左结合的并且运算结果只有 0假 或 1真。 编译器看到 (3 x 5) 时会严格按照以下两步执行 第一步先算左边的 (3 x)。 如果 x 3结果为 1。 如果 x 3结果为 0。 第二步把上一步的 0 或 1拿去和右边的 5 比较即 (0 5) 或 (1 5)。 关键点来了 因为 0 和 1 永远小于 5所以 (上一步结果 5) 的结果恒为 1常见ASCII码符号ASCII码空字符0换行符10空格32048957A65Z90a97z122标识符名字C 语言规定标识符变量名、函数名、数组名、结构体名等只能由 3 种字符组成且必须遵守 2 条禁忌 3 种字符字母a-z A-Z、数字0-9、下划线_。 2 条禁忌 不能以数字开头如 1st 非法但 st1 合法。 不能和 C 语言关键字保留字重名如 int、if、return、struct 等不能用作变量名。||或和,逗号表达式表达式是(z0, (x2)||(z1), z) C 语言执行它时会严格按照以下“三步走” 第一步执行 z 0此时 z 变为 0。 第二步执行 (x2) || (z1)。 先算左边的 x 2。赋值表达式的值就是赋值后的值即 2在 C 语言中非 0 即代表“真”。 因为 ||逻辑或有 “短路求值” 的特性只要左边为真右边就根本不会执行 所以(z1) 这一句被跳过了完全没有执行。z 依然是上一步的 0。 第三步逗号表达式的值是最后一个子表达式的值即 z 的值也就是 0。 所以整个表达式的值绝对是 0而不是 1。sizeof(int) 4sizeof(int) 4 到底意味着什么 sizeof(int) 4 表示 int 类型在内存里占 4 个字节Byte。 1 个字节 8 个比特bit所以 4 个字节 32 个比特bit。 也就是说当你定义一个 int 变量时系统给它分配了 32 个小格子每个格子只能存 0 或 1 来存放这个数字。 若表达式sizeof(int)的值为4则int类型数据可以表示的最大整数为 2的31次方减1 因为 C 语言的 int 默认是有符号signed的意味着这个数字可能是正数也可能是负数。 系统必须拿出 最左边最高位的 1 个格子 专门当“正负号” 0 代表正数1 代表负数。 剩下的 31 个格子才是真正用来表示“数值有多大”的。 如果是unsigned int无符号整型没有符号位32 个格子全用来存数值最大值就是 2的32次方减1。
C语言稀碎知识点
C语言中若省略函数返回类型的申明则函数类型为int。表达式 (3x5) 的值恒为1。C 语言中的关系运算符、、、是左结合的并且运算结果只有 0假 或 1真。 编译器看到 (3 x 5) 时会严格按照以下两步执行 第一步先算左边的 (3 x)。 如果 x 3结果为 1。 如果 x 3结果为 0。 第二步把上一步的 0 或 1拿去和右边的 5 比较即 (0 5) 或 (1 5)。 关键点来了 因为 0 和 1 永远小于 5所以 (上一步结果 5) 的结果恒为 1常见ASCII码符号ASCII码空字符0换行符10空格32048957A65Z90a97z122标识符名字C 语言规定标识符变量名、函数名、数组名、结构体名等只能由 3 种字符组成且必须遵守 2 条禁忌 3 种字符字母a-z A-Z、数字0-9、下划线_。 2 条禁忌 不能以数字开头如 1st 非法但 st1 合法。 不能和 C 语言关键字保留字重名如 int、if、return、struct 等不能用作变量名。||或和,逗号表达式表达式是(z0, (x2)||(z1), z) C 语言执行它时会严格按照以下“三步走” 第一步执行 z 0此时 z 变为 0。 第二步执行 (x2) || (z1)。 先算左边的 x 2。赋值表达式的值就是赋值后的值即 2在 C 语言中非 0 即代表“真”。 因为 ||逻辑或有 “短路求值” 的特性只要左边为真右边就根本不会执行 所以(z1) 这一句被跳过了完全没有执行。z 依然是上一步的 0。 第三步逗号表达式的值是最后一个子表达式的值即 z 的值也就是 0。 所以整个表达式的值绝对是 0而不是 1。sizeof(int) 4sizeof(int) 4 到底意味着什么 sizeof(int) 4 表示 int 类型在内存里占 4 个字节Byte。 1 个字节 8 个比特bit所以 4 个字节 32 个比特bit。 也就是说当你定义一个 int 变量时系统给它分配了 32 个小格子每个格子只能存 0 或 1 来存放这个数字。 若表达式sizeof(int)的值为4则int类型数据可以表示的最大整数为 2的31次方减1 因为 C 语言的 int 默认是有符号signed的意味着这个数字可能是正数也可能是负数。 系统必须拿出 最左边最高位的 1 个格子 专门当“正负号” 0 代表正数1 代表负数。 剩下的 31 个格子才是真正用来表示“数值有多大”的。 如果是unsigned int无符号整型没有符号位32 个格子全用来存数值最大值就是 2的32次方减1。