指针和C++的基本原理

来源:互联网 发布:网站名与域名的区别 编辑:程序博客网 时间:2024/05/20 04:09

C++这种面向对象的编程和类似Java只面向过程的区别:面向对象强调的是在运行阶段即运行阶段。好像C++是真人秀,什么样的表现取决于当天录节目是出现的各种情况。而面向过程呢,就像是话剧演员,是按照剧本一板一眼,剧情都是审定好的了。我们都知道,调试程序时候,分为编译阶段和运行阶段。例如数组,在C++中我们必须指定数组的长度。设定好了,这就是属于编译阶段决策。这样的方法我们就会出现浪费内存的状况。因为常常为了防止容量不足,比如在程序中,90%情况下,数组只需要80的长度。而剩余10%中,只需要20或者需要200的长度。这样的话我们至少要设定数组为200。如此,就会造成内存浪费的情况。OOP面向对象编程把决策推迟到运行阶段进行,很好的解决了这个问题。C++中使用new方法,请求正确数目的内存,并使用指针来跟踪重新分配的内存位置。

指针是一种特殊类型的变量,用于存储值的地址,使用运算符*。地址视为制定的量,值为派生量。

如下列程序:

#include "iostream"using namespace std;int main(){int andy =10;    //定义一个指针int *A_andy;    //A_andy表示取到andy的地址A_andy = &andy; cout<<andy<<endl;cout<<*A_andy<<endl;cout<<&andy<<endl;cout<<A_andy<<endl;*A_andy=*A_andy+1;cout<<andy<<endl;while (1){};return 0;}

程序运行结果如下:

 

 

由上所知:andy表示值,使用&andy来便是andy的地址。指针变量A_andy使用*A_andy来取得地址对应的值。如此就可以通过修改*A_andy的值来修改andy的值了。

希望能和奋斗在C++中的程序猿们一起讨论学习!!!

本人QQ:646167650

新浪微博: Andy_李政刚


0 0