简书链接: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; }
|

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