C++问题,答案是什么?
#include<iostream.h>intn=0;intfunc(intx);voidmain(){inta,b;a=5;b=func(a);cout<<"\nloc...
#include <iostream.h>
int n = 0;
int func(int x);
void main()
{
int a,b;
a = 5;
b = func(a);
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
a++;
b = func(a);
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
}
int func(int x)
{
int a=1;
static int b=10;
a++;
b++;
x++;
n++;
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "parameter x=" << x << endl;
return a+b;
}
分析得到的结果,说明为什么得到这样的结果 展开
int n = 0;
int func(int x);
void main()
{
int a,b;
a = 5;
b = func(a);
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
a++;
b = func(a);
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
}
int func(int x)
{
int a=1;
static int b=10;
a++;
b++;
x++;
n++;
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "parameter x=" << x << endl;
return a+b;
}
分析得到的结果,说明为什么得到这样的结果 展开
2个回答
2013-12-30
展开全部
结果如下:
local a=2local b=11parameter x=6 local a=5local b=13global n=1 local a=2local b=12parameter x=7 local a=6local b=14global n=2
具体解析如下:
#include <iostream>
using namespace std;
int n = 0;
int func(int x);
void main()
{
int a,b;
a = 5;
b = func(a);//这里我们给func传递了一个参数a,之后就调用函数,函数解析在后面
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
a++;
b = func(a);
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
}
int func(int x)//这里的X就是主函数中的a变量,但是传递给函数的只是一个值,并不是a的地址,所以主函数里面的a的值还是不变的
{
int a=1; //这个a跟主函数的不是同一个,这里的是一个局部变量,这能在本函数范围内使用,操作
static int b=10;//同上,另外要注意的是,这个b是一个静态变量,每次调用到时候,b的取值只是上一次调用得到的的最后的值
a++;
b++;
x++;
n++; //n是一个全局变量,在主函数跟func中都用的是同一个内存,所以无论是主函数,还是这里,只要改变了n,n都会变
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "parameter x=" << x << endl;
return a+b;
}
希望能帮到你,如有问题,可以继续找我
local a=2local b=11parameter x=6 local a=5local b=13global n=1 local a=2local b=12parameter x=7 local a=6local b=14global n=2
具体解析如下:
#include <iostream>
using namespace std;
int n = 0;
int func(int x);
void main()
{
int a,b;
a = 5;
b = func(a);//这里我们给func传递了一个参数a,之后就调用函数,函数解析在后面
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
a++;
b = func(a);
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "global n=" << n<<endl;
}
int func(int x)//这里的X就是主函数中的a变量,但是传递给函数的只是一个值,并不是a的地址,所以主函数里面的a的值还是不变的
{
int a=1; //这个a跟主函数的不是同一个,这里的是一个局部变量,这能在本函数范围内使用,操作
static int b=10;//同上,另外要注意的是,这个b是一个静态变量,每次调用到时候,b的取值只是上一次调用得到的的最后的值
a++;
b++;
x++;
n++; //n是一个全局变量,在主函数跟func中都用的是同一个内存,所以无论是主函数,还是这里,只要改变了n,n都会变
cout << "\nlocal a=" << a<< endl;
cout<< "local b=" << b<<endl;
cout<< "parameter x=" << x << endl;
return a+b;
}
希望能帮到你,如有问题,可以继续找我
展开全部
local a=2
local b=11
parameter x=6
local a=5
local b=13
global n=1
local a=2
local b=12
parameter x=7
local a=6
local b=14
global n=2
整体来说 注意的是局部变量、全局变量、和静态变量三个的概念。第一次时条用函数时,将a=5传递给x;在func函数里面时,a=1,执行++后,输出a=2;b是静态变量,执行后输出b=11,1x不用说了,执行完后,将a+b=1返回给b,接着输出a=5,b=13,n=1;再次进入函数时,a=6了,
将a=6传递个x依次往下即可。注意变量的范围就行了
local b=11
parameter x=6
local a=5
local b=13
global n=1
local a=2
local b=12
parameter x=7
local a=6
local b=14
global n=2
整体来说 注意的是局部变量、全局变量、和静态变量三个的概念。第一次时条用函数时,将a=5传递给x;在func函数里面时,a=1,执行++后,输出a=2;b是静态变量,执行后输出b=11,1x不用说了,执行完后,将a+b=1返回给b,接着输出a=5,b=13,n=1;再次进入函数时,a=6了,
将a=6传递个x依次往下即可。注意变量的范围就行了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询