【发布时间】:2020-04-24 11:01:51
【问题描述】:
int main()
{
int nodes = 7;
int var_1 = (int)(log((double)(nodes + 1))/log(2) - 1);
int var_2 = (int)(log((double)(7 + 1))/log(2) - 1);
printf("%d\n", var_1);
printf("%d\n", var_2);
return 0;
}
上述代码将变量var_1 和var_2 相应地初始化为值1 和2。
为什么它们有不同的值,因为变量 nodes 的值为 7,与下一个等式中的常数相同。
编辑:我不会尝试“修复”代码,否则我可以将 nodes+1 分配给变量。
【问题讨论】:
-
当我运行它时,我得到相同的结果 - 2。
标签: c type-conversion