阅读下面的程序,先写出其运行结果,再运行对比。
(一)
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<<' '; } cout<<" "; 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<<' '; } cout<<" "; 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