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_李政刚