第五周 阅读程序(6)
2015-04-03 20:54
197 查看
问题描述:
本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。
(6) 阅读程序,写出程序的运行结果并理解
[cpp] view
plaincopyprint?
#include <iostream>
using namespace std;
class Test{
private:
static int val;
int a;
public:
static int func();
static void sfunc(Test &r);
};
int Test::val=20;
int Test::func()
{
val+=val;
return val;
}
void Test::sfunc (Test &r)
{
r.a=25;
cout<<"Result3="<<r.a<<endl;
}
int main(){
cout <<"Resultl="<<Test::func()<<endl;
Test a;
cout<<"Result2="<<a.func()<<endl;
Test::sfunc (a);
return 0;
}
理想运行结果:
Result1=40
[b]Result2=80
[/b]
[b]Result3=25
[/b]
实际运行结果:
本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。
(6) 阅读程序,写出程序的运行结果并理解
[cpp] view
plaincopyprint?
#include <iostream>
using namespace std;
class Test{
private:
static int val;
int a;
public:
static int func();
static void sfunc(Test &r);
};
int Test::val=20;
int Test::func()
{
val+=val;
return val;
}
void Test::sfunc (Test &r)
{
r.a=25;
cout<<"Result3="<<r.a<<endl;
}
int main(){
cout <<"Resultl="<<Test::func()<<endl;
Test a;
cout<<"Result2="<<a.func()<<endl;
Test::sfunc (a);
return 0;
}
理想运行结果:
Result1=40
[b]Result2=80
[/b]
[b]Result3=25
[/b]
实际运行结果: