简书链接:c语言数据类型长度输出
文章字数:423,阅读全文大约需要1分钟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdlib.h>

int main(int args,const char* argv[]){
unsigned short shortvalue=65537;//最大值65535,如果超过 1个就是 0 超过两个就是1,,用无符号输出,得到的虽然不是负数,但是也是乱七八的数字.
printf("短整数无符号short size:%d shortvalue 无符号u格式 %u 无符号hu格式 %hu,\n",sizeof(unsigned short),shortvalue,shortvalue);//short 2个字节.


printf("无符号Int length:%d \n",sizeof(unsigned int));//只有整数.
printf("又符号int length:%d\n",sizeof(signed int));
unsigned int a=3000000000;
printf("a 无符号的 输出%u 有符号的输出 %d\n",a,a);//前者正确,后者变成了负数,超出.
long big=12345678901234567891;

printf("big 长整数ld格式 %ld 大 短整数的格式输出它%hd 无符号 lu格式 %lu\n",big,big,big);
return 0;
}

image.png

无符号,的意思是只有正数,这样的类型正数最大值肯定要比有符号的数值大,
int最大值我加到1的时候, %ld显示成负数勒,但%lu还是可以输出.