問題1:C言語との違い
この問題を解くためには… |
→ 応用編第1日目参照 |
---|
probex1-1.(難易度:★)
以下のプログラムで、変数aの値を直接変えることなく、aの値に3を足したものを出力するように、プログラムを改造しなさい。
main.cpp#include <iostream> using namespace std; int main(){ int a = 7; int &n = a; cout << "a= " << a << endl; cout << "a= " << a << endl; }
a = 7
a = 10
a = 10
probex1-2.(難易度:★★)
以下のプログラムのchangeNum()関数の引数を、変数のポインタではなく、参照を与える形に変えて、同じ結果が得られるようにプログラムを変更しなさい。
main.cpp
#include <iostream> using namespace std; void changeNumber(int*); int main(){ int n = 5; cout << "変更前 : " << n << endl; changeNumber(&n); cout << "変更後 : " << n << endl; } void changeNumber(int* n){ *n *= 2; // 数値 }
変更前 : 5
変更後 : 10
変更後 : 10
probex1-3.(難易度:★★)
以下のプログラムのswap()関数の引数を、変数のポインタではなく、参照を与える形に変えて、同じ結果が得られるようにプログラムを変更しなさい。
main.cpp#include <iostream> using namespace std; void swap(int*, int*); int main() { int a = 1, b = 2; cout << "a = " << a << " b = " << b << endl; swap(&a, &b); cout << "a = " << a << " b = " << b << endl; return 0; } void swap(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; }
a =1 b = 2
a =2 b =1
a =2 b =1