关于C语言中size of 的问题。
#include<stdio.h>
void main()
{
printf("%d\n",sizeof(int));
}
4
Press any key to continue
问①,这个4是什么意思?通过它能知道哪些信息?
②,从这个4能得到这个int在使用时候的“有效数”是几个吗?例如float的“有效数”是6~7位。
那这里的int的有效数是几位呢?
③,这里的 int 的取值范围是什么呢? C sizeof
[解决办法]
4表示占有4个字节byte的内存
00000000 00000000 00000000 00000000
只要是他的表示范围内都是有效数
第一位是符号位,-2^31 -- 2^31-1
[解决办法]
1. 4的单位byte
2. int = signed int ;有符号整数那么高位是符号位,后面的都是有效位;4*8-1=31
3. 查看头文件limit.h
其中定义各种数据类型的最值
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
#define INT_MAX 2147483647 /* maximum (signed) int value */
[解决办法]
声明:2. int = signed int ;有符号整数那么高位是符号位,后面的都是有效位;4*8-1=31
其中我这里说是“有效位”和浮点有效位不一样的!这里有效位是除符号位外的数值位
浮点数和整数表达是不一样的
[解决办法]
这里的sizeof(int)就是算出int在内存中占有4个字节;
4个字节就是32位,最高位是符号位,所以它能表示的范围是 -2^31-3^31-1