萌新求问:关于数据类型尺寸的问题 大佬有兴趣解答下好嘛谢谢
看完小甲鱼的S1E6数据类型课程后做课后练习 最后一个动动手,需要声明4个变量 sum temp weighti 我的方法是:unsigned long long int sum;
unsigned long int temp;
unsigned long long int weight;
int i;
结果编译过不了,因为没有初始化sum变量, 我觉得是程序里没有给这个变量赋值,我也看不懂小甲鱼下面透出的程序,所以看了下答案.
小甲鱼的方案是:
unsigned long long int sum = 0;
unsigned long long int temp;
unsigned long long int weight;
int i;
for (i = 0; i < 64; i++);
{
temp = pow(2, i);
sum = sum + temp;
}
到这里我有了2个问题:
一. 为什么要给sum赋值0呢 (如果只是单纯的0我觉得都不需要这个变量)
二.我在调试时发现我使用 long int 会溢出 结果是0,我用sizeof指令查看发现 long int 和int 大小是一样的都是4,这又是为什么呢?
望大佬解答下 谢谢{:5_104:}
使用的平台是 vs2019 c 这个提问悬赏在哪里选? 我找了半天,也不能总白嫖大佬 哈哈{:5_109:} 1,你用变量都不初始化的吗?直接拿个随机值加?
2,或许是编译器问题? 大佬们好快..我看不懂小甲鱼下面的for程序什么意思,而且我也不太明白初始化变量是什么意思.容我百度下,无果再来问问大佬们 再次感谢{:5_104:} 一、若sum不赋初值的话,在for循环内,sum=sum+temp,会报错,没有赋值就进行运算是不对的。初值为0,加多少就是多少,这才能进行求和运算啊。
二、int的宽度与系统和编译器有关。有的系统是4字节,与long int 一样;有的系统是2字节,与short int 一样。所以不确定的时候最好用long int 或short int ,因为它们的范围是固定的。 感谢大佬们解答 ,有种茅塞顿开的感觉 ,额我尝试理解下 :
一, for指令内是循环求和,类似子程序
二, 变量参与运算需要先赋值, 而赋值的过程称为初始化变量
三,尺寸长度与电脑和编译器有关,并不是固定的,只是大小顺序关系是一定的.
OKOK小本本记下来 过几天学到for指令肯定能理解的更透彻了 再次感谢大佬们 I love Fishc C!
页:
[1]