阅读下面的程序,先写出其运行结果,再运行对比。
(一)
sum=0
sum=1
sum=3
sum=6
#include <iostream>
using namespace std;
int sub(int*);
int main()
{
int i, k;
for (i=0; i<4; i++)
{
k=sub(&i);
cout<<"sum="<<k<<'\n';
}
cout<<"\n";
return 0;
}
int sub(int *s)
{
static int t=0;
t=*s + t;
return t;
}
运行结果:
具体的步骤为:
注意!
//static:静态局部变量,去除static后:
#include <iostream>
using namespace std;
int sub(int*);
int main()
{
int i, k;
for (i=0; i<4; i++)
{
k=sub(&i);
cout<<"sum="<<k<<'\n';
}
cout<<"\n";
return 0;
}
int sub(int *s)
{
int t=0;
t=*s + t;
return t;
}
结果输出为:
(二)
(1)2,6,6
(2)1,6,6
/*
* Copyright (c) 2014,烟台大学计算机学院
* All right reserved.
* 作者:邵帅
* 文件:temp.cpp
* 完成时间:2014年12月3日
* 版本号:v1.0
*/
#include <iostream>
using namespace std;
int *p;
void pp(int a, int *b);
int main()
{
int a=1, b=2, c=3;
p=&b;
pp(a+c, &b);
cout<<"(2)"<<a<<','<<b<<','<<*p<<endl;
return 0;
}
void pp(int a, int *b)
{
int c=4;
*p=*b+c;
a=*p-c;
cout<<"(1)"<<a<<','<<*b<<','<<*p<<endl;
}
运行结果:
具体步骤:
@ Mayuko