定义了一个全局变量没初始化直接打印,居然不是零?难道数据储存全出错了?全局变量跑栈空间里去了?求解答
你 i 这是局部变量,定义在main 函数内部的,未初始化,值是随机的
全局变量在哪呢?我怎么没看到?
在语句块内部,函数内部,包括函数的参数均为自动变量也就是局部变量,如果没有对它们进行初始化,那么它们的值是不确定的,也就是随机性的。
在函数外面与函数平行的变量才是全局变量,全局变量默认会自动初始化0。
所谓全局即所有函数外部, main函数也是函数.
不知道你这个问题是否已经解决, 如果还没有解决的话:int cal(int n) {
int sum_1 = 0;
int p = 1;
for (; p < 100; ++p) {//第一段为O(1)
sum_1 = sum_1 + p;
}
int sum_2 = 0;
int q = 1;
for (; q < n; ++q) {//第二段为O(n)
sum_2 = sum_2 + q;
}
int sum_3 = 0;
int i = 1;
int j = 1;
for (; i <= n; ++i) {//第三段为O(n^2)
j = 1;
for (; j <= n; ++j) { //这里又套了一层循环
sum_3 = sum_3 + i * j;
}
}
return sum_1 + sum_2 + sum_3;
}
第一段的执行的次数是常量,所以是O(1),第二段执行了n次所以是O(n),第三段执行了O(n2),所以这段代码最终的时间复杂度为O(n^2)