这个C ++代码如何返回0,0,3

时间:2018-03-20 02:47:55

标签: c++

以下是代码:

SVC(kernel='precomputed')

输出为0,0,3

我理解a = 0,因为它是一个全局变量,默认为0,i = 3,但我无法弄清楚b = 0的原因或原因

3 个答案:

答案 0 :(得分:2)

在您的计划中,f()始终返回0a循环中的for与全局变量(它“阴影”)不同a。因此,通过调用bmain()中的局部变量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;                              
}