一个小程序引发对于C语言指针的思考:
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 void my_swap (int* a,int* b) { 5 cout<<*a<<" "<<*b<<endl; 6 int *tmp=a; 7 a=b; b=tmp; 8 cout<<*a<<" "<<*b<<endl; 9 int main () 10 { 11 12 int a=3,b=4; 13 my_swap(&a,&b); 14 cout<<a<<endl; 15 return 0; 16 }
猜猜结果是什么:
3 4
4 3
3 !!!
哎 明明a指针指向的内容变了啊
怎么还是3
希望你真正明白按值传递和按指针传递 !!!
抓住青春的尾巴。。。