赞
踩
目录
- void swap1(int a, int b)
- {
- int t = a;
- a = b;
- b = t;
- }
-
- int main()
- {
- int a = 10;
- int b = 20;
-
- printf("交换前:a=%d b=%d\n", a, b);
- swap1(a, b);
- printf("交换后:a=%d b=%d\n", a, b);
-
- return 0;
- }
运行结果:
实参和形参不同内存单元 ,形参变了,实参没变,两者内存空间不同;
在不同的时间里,修改了不同的内存单元中的内容.
- void swap2(int* a, int* b)
- {
- int* t = a;
- a = b;
- b = t;
- }
- int main()
- {
- int a = 10;
- int b = 20;
-
- printf("交换前:a=%d b=%d\n", a, b);
- swap2(&a, &b);
- printf("交换后:a=%d b=%d\n", a, b);
-
- return 0;
- }
只交换形参的指向,内存中的内容未改变;
在不同的时间里,修改了不同的内存单元.
- void swap3(int* a, int* b)
- {
- int t = *a;
- *b = *a;
- *b = t;
- }
-
- int main()
- {
- int a = 10;
- int b = 20;
-
- printf("交换前:a=%d b=%d\n", a, b);
- swap3(&a, &b);
- printf("交换后:a=%d b=%d\n", a, b);
-
- return 0;
- }
改变了地址指向的内容;
在不同的时间里,修改了同一段的内存单元中的内容,实参形参内存单元相同.
- void swap4(int& a, int& b)
- {
- int t = a;
- a = b;
- b = t;
- }
- int main()
- {
- int a = 10;
- int b = 20;
-
- printf("交换前:a=%d b=%d\n", a, b);
- swap4(a,b);
- printf("交换后:a=%d b=%d\n", a, b);
-
- return 0;
- }
运行结果:
对实参本身进行修改;
不同的时间里修改了自己本身。
- void Swap_err2(int* p1, int* p2)//error
- {
- int* tmp;
- tmp = p1;
- p1 = p2;
- p2 = tmp;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。