c언어)전역 변수 질문합니다.

조회수 717회
void set(int h, int m);

int h,m,;

int main(void)
{

    set(h,m);
    printf("%d%d", h,m);


}

void set(int h, int m)
{

    printf("최초 시간 분 입력(24시간): ");
    scanf("%d%d", &h, &m);   
}

전역변수 h, mset 함수로 초기화하고 싶은데, 함수 내에서만 되고 밖으로 나오면 처음 초기화값으로 나오는데 어떻게 하면 좋을까요. void set(void) 선언말고 void set(int h, int m)로 선언하면서 하고 싶습니다.

  • C언어에서는 그렇게 할 수 없습니다. call-by-value와 call-by-reference 주제로 학습하시면 질문에 대한 근본적인 답을 얻으실 수 있을 겁니다. 전역변수를 전달인자로 넘겨서 값을 변경하고 싶다면 `void set(int *h, int *m)` 꼴로 접근하셔야 합니다. Kyungmin Lee 2020.3.25 19:40
  • ㄴ0ㄱ감사합니다 알 수 없는 사용자 2020.3.25 22:56

1 답변

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

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

(ಠ_ಠ)
(ಠ‿ಠ)