全部问题 > 当前问题

为什么a-1的时候输出结果是65535?

并且是在a=0的时候,而当a=其他数字的时候,则是正常运算,这是为什么呢?希望解答

王艳慧 2016-9-19 18:17:04

共 6 个回答

初一 2016-9-19 18:36:07

  什么a-1   把代码贴出来

王艳慧 2016-9-19 18:39:14

回复 初一

#include<stdio.h>

main()

{

unsigned short a=6;

printf("%d\n",sizeof(a));

printf("%hu\n",a-1);

}


王艳慧 2016-9-19 18:40:58

回复 初一:就是当a=0时就是65535,而a=6时就是5

初一 2016-9-19 18:45:13

回复 王艳慧:  这是个你定义的无符号整形数的数值上限   是循环的  0再减2就是65534

最佳答案

初一 2016-9-19 18:47:34

回复 王艳慧:  无符号短整形 占用字节数2  数值范围是0~65535   

                       可想而知0再减1就是65535   因为它没有负数

王艳慧 2016-9-22 17:21:12

回复 初一:恩恩,懂了,谢谢


问题来自: 变量修饰符