C++新手看不懂的代码,请帮我解释下,

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:31:23
#include<iostream>
using namespace std;
int f(int a) //为什么这里要用int a? 而不在下面定义?有区别吗?
{ auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return a+b+c;
}
int main()
{int a=2,i;
for(i=0;i<3;i++)
cout<<f(a)<<endl; /*这里输出f()函数里的数为什么是a?难道是因为上面函数f函数后面的定义的int a,而这里要用a?*/
cout<<endl;
return 0;
}
帮我解释下,非常感谢!

这个代码其实不难,以后要好好学哦:
第一个问题:你所说的不在下面定义是指什么的下面呢?如果你是说在f()这个函数的下边的话,是这样的。C++在调用函数的时候要匹配的,如果在函数的参数设置部分没有参数,那说明调用这个函数的是默认无参数的程序调用,如果有参数,那就不调用这个函数了。它在这里定义了一个整形INT也就是要求调用这个函数的程序必须传递过来一个整形数,否则是不能调用的。
第二个问题:是a的原因不是因为在f()这个函数的参数设置部分定义了a,而是在你的主函数main()部分定义了a=2,所以才是a,如果你换成b=2,那么就要写cout<<f(b)<<endl;了。也就是主函数把a的值按照传值的方式把2这个值传给了f()函数中的a参数,然后再进行运算的。
还有什么问题可以在补充。

#include<iostream>
using namespace std;
int f(int a)//用户自定义的函数,
{ auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return a+b+c;
}
int main()
{int a=2,i;
for(i=0;i<3;i++)
cout<<f(a)<<endl; //调用上面用户自定义的函数,a作为函数的参数传给f这个函数。在f(int a)只是声明f有一个整型的变量。f(int a)其中的a可以用任何一个英文字母来表示和任何标识符来表示。跟这里没有任何关系的。
cout<<endl;
return 0;
}

int f(int a) //为什么这里要用int a? 而不在下面定义?有区别吗?

用什么都行~~这个a和下边的不是同一个a ,

cout<<f(a)<<endl; /*这里输出f()函数里的数为什么是a?难道是因为上面函数f函数后面的定义的int a,而这里要用a?*/

这里也