c언어 구조체 질문입니다.

조회수 460회

제가 짠 코드를 간단한 구조만 나타내면

#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가 왜 작동하지 않는 건가요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)