我是C編程的新手,我嘗試了一個函數來交換數組的變量,但我無法讓它工作,我不知道爲什麼。你能幫我麼?先謝謝你。C函數不能正常工作
下面的代碼:
#include <stdio.h>
void inplace_swap(int *x, int *y){
if (x!=y){
*y = *x^*y;
*x = *x^*y;
*y = *x^*y;
}
}
void reverse_array(int a[], int cnt){
int first, last;
for (first = 0, last = cnt-1; first <= last; first++, last--)
inplace_swap(&a[first], &a[last]);
}
int main(){
//int eight = 80, seven = 70;
//inplace_swap(&eight, &seven);
//printf("New eight value is %d\n", eight);
//printf("New seven value is %d\n", seven);
int arr[5] = {1,2,3};
reverse_array(&arr[3], 2);
printf("%d\n", arr[1]);
//int i;
//for (i=0;i < 4;i++) {
// printf("%d\n", arr[i]);
//}
}
你會得到什麼結果?你有什麼嘗試,並且你使用了一個調試器? – Chimera
'reverse_array(&arr [3],2);'你爲什麼要傳遞你沒有明確初始化的元素的地址? –
除了上面的問題,你只打印第二個元素'arr','printf(「%d \ n」,arr [1]);' - >'for(int i = 0; i <3 ; ++ i)printf(「%d \ n」,arr [i]);' – George