#include <iostream>
using namespace std; int g = 300; void print(int p, int q) { cout << p << endl << q << endl; } void set(int* &p, int* q) { p = &g; // p是引用类型,可以改变传进参数的指向 q = &g; // q不会 } int main() { int a = 10, b = 20; int *pa = &a, *pb = &b; print(a, b); cout << pa << endl << pb << endl; set(pa, pb); // pa现在指向g,但pb还是指向b,这就是引用和非引用的差别 // print(a, b); print(*pa, *pb); return 0; }
int *p是定义一个指针
int *&p是定义一个指针的引用
指针当参数时,只能改名指针指向的内容,不能改变指针本身你。
指针的引用当参数是,既可以改变指针指向的内容,又可以修改指针本身。