2

次のプログラムを使用して、長方形構造の長さと幅を交換しました

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->)、メンバー変数のアドレスを関数に渡すために使用する必要があります。誰か説明してくれませんか?

4

1 に答える 1