c언어 구조체 질문입니다.
조회수 463회
제가 짠 코드를 간단한 구조만 나타내면
#include <stdio.h>
struct ABC {//구조체 정의
int a1;
} abc;//구조체 선언
void func1(struct ABC a) {
scanf("%d", &a.a1);
}
void func2(struct ABC a) {//형식에 맞게 출력
printf("%d",a.a1);
}
int main() {
func1(abc);
func2(abc);
return 0;
}
입니다.
제 생각에는 parameter에 abc가 있으니 함수 안에서 abc가 작동해야할 것 같은데 그렇지 않습니다.
그런데 여기서 조금만 바꾸면
#include <stdio.h>
struct ABC {//구조체 정의
int a1;
} abc;//구조체 선언
void func1() {
scanf("%d", &abc.a1);
}
void func2() {//형식에 맞게 출력
printf("%d",abc.a1);
}
int main() {
func1();
func2();
return 0;
}
정상적으로 작동하게 됩니다.
첫번째 코드에서 함수 안에서 abc가 왜 작동하지 않는 건가요?
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력