#include <stdio.h> int main(void) |
|
6分 |
你把代码中所有的 CHAR_BIT 换成 8
就懂了 或者你可以把第三个printf 中的 sizeof 删掉 |
2分 |
4*8=32,小学生都懂吧
|
6分 |
理解sizeof操作符以及数据的默认类型。
sizeof Operator Yields the size of its operand with respect to the size of type char. The operand to sizeof can be one of the following: A type name. To use sizeof with a type name, the name must be enclosed in parentheses. An expression. When used with an expression, sizeof can be specified with or without the parentheses. The expression is not evaluated. 默认类型 整型->int 浮点型->double CHAR_BIT是一宏 = 8 |
6分 |
printf(“%d bits\n”, sizeof 2147483647*CHAR_BIT); // 显示32 bits
printf(“%d bits\n”, sizeof (-2147483647-1)*CHAR_BIT); // 显示32 bits printf(“%d bits\n”, sizeof CHAR_BIT); // 显示4 bits printf(“%d bits\n”, sizeof 1); // 显示4 bits printf(“%d bits\n”, sizeof 1*CHAR_BIT); // 显示32 bits 首先要明明sizeof是运算符,且sizeof的运算符优先级要高于 * (乘法) |
1.由于头文件的存在 这里CHAR_BIT编译时被直接替换为8
2.而且sizeof 的优先级高于 * 所以为了打字简便而sizeof不加打括号时 编译理解为先取长后乘法 而不是想象中的先数值类型转换再运算 然后对运算后的字符取长 总结如上 谢谢各位大大的帮助 vb 转c 有些地方会有vb老根 希望大大们助我一力 么么哒 |