// 구조체 멤버의 연산.
#include<stdio.h>
/*
struct simple
{
int data1;
int data2;
};
swap(struct simple *i,struct simple *j)//구조체 포인터로 받는다.
{
struct simple temp=*i; // 맴버 값 바꿀시 임시 구조체도 같은구조체롤 선언하여 형 일치 시킴
*i=*j;
*j=temp;
}
int main()
{
struct simple p1={1,2};// 객체의 선언및 초기화
struct simple p2={3,4};
swap(&p1,&p2); // 객체의 주소값을 인자로 전달하여야 콜바이 레퍼런스 의미!!
printf("p1.data1=%d p1.data2=%d\n",p1.data1,p1.data2); // 결과값 출력
printf("p2.data1=%d p2.data2=%d",p2.data1,p2.data2);
return 0;
}
*/
// 문제2 구조체 멤버내 연산 콜바이 밸류
struct simple
{
int x;
int y;
};
struct simple add(struct simple i,struct simple j)// 인자를 구조체의 변수로 받는다=콜바이밸류의특징,.
{
struct simple sum={(i.x)+(j.x),(i.y)+(j.y)}; // 임시 구조체의 선언과 동시에 값의 연산하여 초기화 시킴
return sum;// 객체를 리턴하여 반환시킨다.
}
int main()
{
struct simple p1;
struct simple p2;
struct simple result;// 결과 값을 받을 같은 크기의 구조체 선언
puts("p1의 좌표(x, y)입력:");
scanf("%d %d",&(p1.x),&(p1.y));// 구조체의 인자값을 입력 받는다 (p1좌표 x,y)
puts("p2의 좌표(x, y)입력:");
scanf("%d %d",&(p2.x),&(p2.y));// 구조체의 인자값을 입력 받는다 (p2좌표 x,y)
result= add(p1,p2);//좌표값을 넘겨받아 같은크기의 미리선언한 구조체로 받는다
printf("sum.x=%d sum.y=%d\n", result.x, result.y);// 결과값을 출력한다.
return 0;
}