引数の参照渡し

C++ではデータ型の前に&をつけて参照渡しが出来ることになりました。まあ、別にC言語の「*」も使えるので「&」か「*」のどちらかを使用するかはあなた次第でしょう。



#include <iostream.h>
#include <stdio.h>

void test1(int *a,int *b);
void test2(int* a,int* b);
void test3(int &a,int &b);
void test4(int& a,int& b);

void main(void)
{
 int a=10,b=5;

//C言語記述--->
 test1(&a,&b);
 cout<<"test1のテスト"<<"a="<<a<<" "<<"b="<<b<<endl;
 
 a=10,b=5;
 test2(&a,&b);
 cout<<"test2のテスト"<<"a="<<a<<" "<<"b="<<b<<endl;

//C++言語記述--->
 a=10,b=5;
 test3(a,b);
 cout<<"test3のテスト"<<"a="<<a<<" "<<"b="<<b<<endl;

 a=10,b=5;
 test4(a,b);
 cout<<"test4のテスト"<<"a="<<a<<" "<<"b="<<b<<endl;

 getchar();
}

void test1(int *a,int *b)
{
 int c;
 
 c=*a;
 *a=*b;
 *b=c;
}

void test2(int* a,int* b)
{
 int c;

 c=*a;
 *a=*b;
 *b=c;
}

void test3(int &a,int &b)
{
 int c;

 c=a;
 a=b;
 b=c;
}

void test4(int& a,int& b)
{
 int c;
 
 c=a;
 a=b;
 b=c;
}

※結果はすべてa=5 b=10になる






C++の基礎のページへ



ホーム PV ランキング