一:指针部分
指针是一种变量类型,声明指针变量需要分配独立的存储空间,指针可以为空『void』表示不指向任何对象。
指针里存储的值是一个地址,可以通过这个地址获取和改变所存储变量的值。
指针的类型必须与其所指向变量的类型一致,可以在任何时候改变指向的变量……
————————————————————这些是简单理论的啰嗦,下面说些代码相关的————————————————————————————
定义方式:int *p = &a; *是指针的标识符,表示p是一个指针类型的变量,这里的变量a,必须是一个int类型。 &运算符可以获取变量的地址
取值方式:(可能有点绕)通过指针获取所指向变量的值是这样做的:*p
int a = 10; int *pa = &a; cout<<a<<"----"<<*pa<<"----"<<&a<<"----"<<pa<<endl;
输出结果:10----10----0x7fff5fbff89c----0x7fff5fbff89c
可以看到通过*pa获取的值跟a的值一样,a的地址和pa的值也一直,说明指针类型的变量pa的值就是a的地址。
关于指针呢,还有很多东西可以讲,比如指针运算、指向指针的指针、指针方法的指针、指针作为函数参数等等,下次针对指针专门来写写看
二:引用部分
有JAVA或C#等语言基础的人对于引用的认识估计和指针没什么区别,在C++里这两者区别甚大,这也是我学习C++到目前为止跟之前知识体系差距最大的一点。
C++中引用其实就是给变量起一个别名,引用没有自己独立的存储空间,与它引用的变量共享能存,对引用的操作就是对变量的操作(真假美猴王)。
定义方式 int &f = a; &这里又是引用的标识符,f是一个对变量a的引用。f的类型是int那么a的类型也必须是int。
int a = 10; int &fa = a; cout<<a<<"----"<<fa<<"----"<<&a<<"----"<<&fa<<endl;
输出结果:10----10----0x7fff5fbff89c----0x7fff5fbff89c
可以看到引用fa的值和地址与变量a的值和地址一致。
引用的使用注意点:定义的时候初始化 int &fa; fa = a;这么先定义后初始化的方式直接报错(引用是没有内存空间的)