知識社群登入
位置: AutoCAD開放式教學 > 討論區 > 討論
各種 變數交換的 語法
1樓
#include <stdio.h>
#include <stdlib.h>
// ----------------------------------------------

// swap1(&a, &b);
void swap1(int *a, int *b)
{
int c;
c= *a;
*a= *b;
*b= c;
}
// ----------------------------------------------

// swap2(a, b);
void swap2(int &a, int &b)
{
int c= a;
a= b;
b= c;
}
// ----------------------------------------------

// swap3(x, y);
template <class T>
void swap3(T &a, T &b)
{
T c;
c= a;
a= b;
b= c;
}
// ----------------------------------------------

int main()
{
int a, b;
a= 123; b= 456;
#if 0
// swap a, b
int c= a;
a= b;
b= c;
printf("\n case- 1, a= %d, b= %d \n", a, b);
system("PAUSE");
#endif
#if 0
a= 12; b= 34;
a^= b^= a^= b;
printf("\n case- 2, a= %d, b= %d \n", a, b);
system("PAUSE");
#endif
#if 0
// call swap1()
a= 1234; b= 5678;
swap1(&a, &b);
printf("\n case- 3, a= %d, b= %d \n", a, b);
system("PAUSE");
#endif
//
#if 0
// call swap2(), by reference
a= 121; b= 343;
swap2(a, b);
printf("\n case- 4, a= %d, b= %d \n", a, b);
system("PAUSE");
#endif
// by template
double x, y;
a= 123; b= 456'
x= 123.456; y= 789.987;
swap3(a, b);
swap3(x, y);
printf("\n case- 4, a= %d, b= %d \n", a, b);
printf("\n case- 4, x= %.3lf, y= %.3lf \n", x, y);
system("PAUSE");
return 0;
}