C++ Day1
C++ Day1
整型数据大小
c++提供了一种灵活的标准,确保了最小长度,如下:
- ***short *** 至少16位(2字节);
- int 至少与short一样长;
- long 至少32位(4字节),且至少与int一样长;
- long long 至少64位(8字节),且至少与 long 一样长。
即:2byte ≤ short ≤ int ≤ 4byte ≤ long ≤ 8byte ≤ long long
不同平台下C\C++数值数据类型长度如下:(byte)
| 类型 | win32 | win64 | linux32 | linux64 |
|---|---|---|---|---|
| char | 1 | 1 | 1 | 1 |
| short | 2 | 2 | 2 | 2 |
| int | 4 | 4 | 4 | 4 |
| long | 4 | 4 | 4 | 8 |
| long long | 8 | 8 | 8 | 8 |
| float | 4 | 4 | 4 | 4 |
| double | 8 | 8 | 8 | 8 |
| void* | 4 | 8 | 4 | 8 |
在程序中获取整型的最大值
头文件climits中包含了一下限制:
| ··· | 范围 |
|---|---|
| char 的位数 | CHAR_BIT |
| char | CHAR_MIN ~ CHAR_MAX |
| signed char | SCHAR_MIN ~ SCHAR_MAX |
| unsigned char | 0 ~ UCHAR_MAX |
| short | SHRT_MIN ~ SHRT_MAX |
| unsigned short | 0 ~ USHRT_MAX |
| int | INT_MIN ~ INT_MAX |
| unsigned int | 0 ~ UNIT_MAX |
| long | LONG_MIN ~ LONG_MAX |
| unsigned long | 0 ~ ULONG_MAX |
| long long | LLONG_MIN ~ LLONG_MAX |
| unsigned long long | 0 ~ ULLONG_MAX |
注:char、signed char、unsigned char的区别:
char可能是signed char,也可能是unsigned char,取决于编译器。
可以利用一下代码查看char的类型:
#include<stdio.h>
int main(){
char a=-1;
signed char b=-1;
unsigned char c=-1;
printf("%d %d %d\n",a,b,c);
return 0;
}
爱赢才会拼。
浙公网安备 33010602011771号