C++学习扎记(一)
这段时间对C++语言突然有了兴趣,虽然大学已经学过C++了,但只是学了皮毛,一点实用也没有。于是决定重新学习,从头开始。学习的过程肯定是枯燥无味的,所以开了个博,希望能利用这个博来调解下枯燥,写些学习扎记的同时,也想慰藉下自己无聊的心情。现在才是刚刚开始,所以写下一句祝语吧,希望可以坚持下去。
#include <iostream.h> int *pPointer; void SomeFunction(); { int nNumber; nNumber = 25; //让指针指向nNumber: pPointer = &nNumber; } void main() { SomeFunction(); //为pPointer赋值 //为什么这里失败了?为什么没有得到25 cout<<"Value of *pPointer: "<<*pPointer<<endl; } |
这段程序先调用了SomeFunction函数,创建了个叫nNumber的变量,接着让指针pPointer指向了它。可是问题出在哪儿呢?当函数结束后,nNumber被删掉了,因为这一个局部变量。局部变量在定义它的函数执行完后都会被系统自动删掉。也就是说当SomeFunction 函数返回主函数main()时,这个变量已经被删掉,但pPointer还指着变量曾经用过的但现在已不属于这个程序的区域。
以上是在网上看到的,链接地址:http://c.chinaitlab.com/cc/basic/200907/790635.html。但按照上面的程序段输入,运行后,却并不像上边的解释那样没有得到25,反而是结果得到了25,这是为什么呢?谁可以解释的,请教!
以上是在网上看到的,链接地址:http://c.chinaitlab.com/cc/basic/200907/790635.html。但按照上面的程序段输入,运行后,却并不像上边的解释那样没有得到25,反而是结果得到了25,这是为什么呢?谁可以解释的,请教!