void swap(int &first, int &second){
int temp = first;
first = second;
second = temp;
}
int a=3,b=2;
swap(a,b);
void swap(int &first, int &second)
構文エラーがあるとコンパイラが訴えます。なんで?C は参照をサポートしていませんか?
void swap(int &first, int &second){
int temp = first;
first = second;
second = temp;
}
int a=3,b=2;
swap(a,b);
void swap(int &first, int &second)
構文エラーがあるとコンパイラが訴えます。なんで?C は参照をサポートしていませんか?
C は参照渡しをサポートしていません。これは C++ の機能です。代わりにポインタを渡す必要があります。
void swap(int *first, int *second){
int temp = *first;
*first = *second;
*second = temp;
}
int a=3,b=2;
swap(&a,&b);
C は参照渡しをサポートしていません。したがって、達成しようとしていることを行うには、ポインターを使用する必要があります。
void swap(int *first, int *second){
int temp = *first;
*first = *second;
*second = temp;
}
int a=3,b=2;
swap(&a,&b);
これはお勧めしませんが、完全を期すために追加します。
パラメータに副作用がない場合は、マクロを使用できます。
#define swap(a,b){ \
int _temp = (a); \
(a) = _b; \
(b) = _temp; \
}
整数スワップの場合、ローカル変数なしでこのメソッドを使用できます。
int swap(int* a, int* b)
{
*a -= *b;
*b += *a;
*a = *b - *a;
}