구조체를 함수 인자로 값으로 전달하면 함수 안에서 바꾼 값은 원본에 반영되지 않는다. 값을 바꾼 구조체를 반환하거나, 포인터를 전달해야 한다.
반환값으로 교체
struct Score {
double math;
double english;
};
struct Score swap(struct Score value) {
double temp = value.math;
value.math = value.english;
value.english = temp;
return value;
}score = swap(score);구조체가 크거나 원본을 직접 수정해야 한다면 포인터를 인자로 받는 방식이 더 적합하다. 이때는 포인터가 유효한지와 수정 범위를 함께 관리한다.
댓글을 불러오고 있습니다.