c++指针其实就是个变量,跟int,float等是一个层次,只不过它用来指向的是一个变量的地址,如你定义一个int* a = &p,这里a是个指针,p是个int类型的变量,a指向了p所在的地址。这里p的地址用的是取地址符&,表达的是存储变量p的地址,引用就是别名,一般在类型的后面出现如int &a = p,这里a是int类型,其实a就是p跟p是同一个变量而已。
举个简单的例子:
void test(int& a){};
void main(){
int a=1;
int* p = &a;
test(a);
}
这个里面,p为指针变量,指向变量a的地址,&a表示内存中变量a的地址,test函数中的&a为引用,即test函数中是直接操作main函数里的变量a,引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
建议努还是听听网易公开课里斯坦福大学抽象编程的课吧