[問題] 算是有點蠢的新手問題
#include<stdio.h>
#include<stdlib.h>
void swap(int i, int j);
int main(){
int i = 1, j = 2;
swap(i, j);
printf("i = %d\nj = %d\n", i, j);
system("pause");
return 0;
}
void swap(int i, int j){
int tmp = i;
i = j;
j = tmp;
}
為啥跑出來的結果 i 和 j 沒有交換?
是因為在函式裡換完後出函式就還原了嗎?
還是有其他的原因? 請各位大大說明一下
另外我還有看到傳入值為指標形的( *i, *j)和( &i, &j)
為什麼這兩個會成功交換? 是因為指標的定位換完後不會還原?
麻煩大家指教一下……謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.204.40
推
03/20 16:57, , 1F
03/20 16:57, 1F
→
03/20 16:58, , 2F
03/20 16:58, 2F
推
03/20 17:01, , 3F
03/20 17:01, 3F
→
03/20 17:01, , 4F
03/20 17:01, 4F
推
03/20 17:07, , 5F
03/20 17:07, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章