|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 希儿的 于 2024-8-17 17:10 编辑
今天发现一个奇怪的问题
const int max = pow(2, sizeof(int) * 8) / 2 - 1;
const int min = pow(2, sizeof(int) * 8) / 2 * (-1);
printf("%d\n%d\n", max, min);
const long int max = pow(2, sizeof(long) * 8) / 2 - 1;
const long int min = pow(2, sizeof(long) * 8) / 2 * (-1);
printf("%d\n%d\n", max, min);
为什么上面两个代码打印值相同呢
而且试过了 long long 也是一样的结果
是超出范围导致不行了吗
小甲鱼老师之前讲过,int 和long int 或者long long int对结果都是没有影响的。
因为结果不超过其取值范围。
int:-217483648~2147483647
long:-217483648~2147483647
long long:-9223372036854775808~9223372036854775807
复习
|
|