1 #include <iostream>
2 using namespace std;
3 struct point
4 {
5 int x;
6 int y;
7 };
8
9 void changenum1(point *&pnum)
10 {
11 pnum = new point;
12 pnum->x = 4;
13 }
14
15 void changenum2(point *pnum)
16 {
17 pnum = new point;
18 pnum->x = 4;
19 }
20
21
22
23
24 void test1()
25 {
26 point *num = new point;
27 num->x = 10;
28 changenum1(num);
29 std::cout<<"指针引用"<<num->x<<endl;
30 }
31
32 void test2()
33 {
34 point *num = new point;
35 num->x = 10;
36 changenum2(num);
37 std::cout<<"指针"<<num->x<<endl;
38 }
39
40
41 int _tmain(int argc, _TCHAR* argv[])
42 {
43 test1();
44 test2();
45
46 return 0;
47 }
48
运行结果是:
4
10
解释:
char *&是指针引用
cha *是指针
当用指针引用作为形参的时候,改变形参的指针,同时实参的指针也改变了。
当用指针做形参的时候,改变形参的指针,实参的指针不改变,当改变指针所指向的内容的时候,会同时改变。