次のプログラムを使用して、長方形構造の長さと幅を交換しました
typedef struct rectangle
{
int len;
int wid;
} rect;
void swap(int* a, int * b)
{
int temp;
temp= *a;
*a=*b;
*b=temp;
}
int main()
{
rect rect1;
rect *r1;
r1= &rect1;
r1->len=10;
r1->wid=5;
cout<< "area of rect " << r1->len * r1->wid<<endl;
swap(&r1->len,&r1->wid);
cout<< "length=" << rect1.len<<endl;
cout<<"width=" <<rect1.wid;
}
ただし、次を使用する場合:
swap(r1->len,r1->wid);
それ以外の:
swap(&r1->len,&r1->wid);
私はまだ正しい結果を得ていますが、それがどのように機能しているのかわかりません。私の理解では(&r1->)
、メンバー変数のアドレスを関数に渡すために使用する必要があります。誰か説明してくれませんか?