以下是代码:
SVC(kernel='precomputed')
输出为0,0,3
我理解a = 0,因为它是一个全局变量,默认为0,i = 3,但我无法弄清楚b = 0的原因或原因
答案 0 :(得分:2)
在您的计划中,f()
始终返回0
。 a
循环中的for
与全局变量(它“阴影”)不同a
。因此,通过调用b
,main()
中的局部变量b
(全局阴影0
)会初始化为f()
。
答案 1 :(得分:1)
因为在函数f的for循环中,a是局部变量。它的scople仅在for循环中有效。所以回报价值是全球的;所以返回0;
答案 2 :(得分:1)
虽然其他人已经指出你在循环中写入本地a
,但是返回全局a
,即使你修复了它也没有任何价值,你的循环实际上永远不会输入它的正文,因为i < c, i++
评估为0
,这将被解释为false
。 (见What does the comma operator , do?
。)
您需要修复整个循环:
for (int i = 0; i < c; i++)
{
a = n + i;
}