交換兩個整型數
阿新 • • 發佈:2018-12-02
錯誤示例:
#include<stdio.h>
void Swap(int a,int b) {
int tmp = a;
a = b;
b = tmp;
}
void main() {
int a = 10;
int b = 20;
printf("交換之前\n");
printf("a=%d,b=%d\n",a, b);
Swap(a, b);
printf("交換之後\n");
printf("a=%d,b=%d\n", a, b);
}在這裡插入程式碼片
正確方法:交換兩個實參的地址
#include<stdio.h> void Swap(int *a,int *b) { int tmp =*a; *a = *b; *b = tmp; } void main() { int a = 10; int b = 20; printf("交換之前\n"); printf("a=%d,b=%d\n",a, b); Swap(&a, &b); printf("交換之後\n"); printf("a=%d,b=%d\n", a, b); }
不使用臨時變數交換兩個整型數
此處同樣要使用指標的方式交換兩個引數的地址
#include<stdio.h> void Swap(int *a,int *b) { *a = *a ^*b; *b = *a ^*b; *a = *a ^*b; } void main() { int a = 10; int b = 20; printf("交換之前\n"); printf("a=%d,b=%d\n",a, b); Swap(&a, &b); printf("交換之後\n"); printf("a=%d,b=%d\n", a, b); }