数据类型求助
#include<stdio.h>#include<math.h>
int main(){
unsigned long long sum;
unsigned long long temp;
for(int i=0;i<64;i++){
temp=pow(2,i);
sum = sum + temp;
}
printf("%llu\n",sum);
return 0;
}
为什么sum=0?求助 unsigned long long sum = 0;
试试看?
unsigned long long sum; 没有初始化
sum = sum + temp; 的时候会很危险,因为不知道 sum 初始是多少
此时的 sum 是一个随机值
temp 初始化为 0 与否在这里并没有影响,因为 temp=pow(2,i); 是直接赋值给 temp 的
而不是像sum = sum + temp; 那样,调用上一轮的 sum 然后再赋值给 sum 谢谢
页:
[1]