다루두루

블로그 이미지

차케요

공부하면서 정리하는 노트같은 블로그입니다.

C언어 프로그래밍 인자로 전달되는 값

C언어 알고리즘 2015. 8. 27. 16:37


C언어 프로그래밍 인자로 전달되는 값은 복사 값


C언어에서 함수를 호출할 때 어떤 데이터를 넘겨주면서 그것을 대입해서 함수를 실행하도록 하는 경우 전달되는 값을 인자라고 하는데요. 함수에는 같은 같은 자료형의 변수... 즉, 매개변수에 그 값을 저장했다가 이용하게 됩니다. 다음 예제에서 이 개념을 확인해보겠습니다.

▲ main() 함수에서 int형 변수 su1과 su2를 선언과 초기화 한 후 hap()이라는 함수를 호출하면서 그 값을 전달하고 있습니다. 그리고 호출되는 함수에서는 두 값을 받아서 더해서 출력하고 있는 내용입니다. 이렇게 값을 전달하고 받아서 함수를 실행하게 되는데.....

 

 

 여기서 중요한 내용은 hap()을 호출하면서 전달한 값 su1과 su2입니다. 이 녀석들은 정말로 su1과 su2에 저장된 값일까요? 결론부터 정리하자면 크기만 같은 값이고 완전 별개의 데이터입니다. 즉, 10, 20을 그대로 옮겨버리는 게 아니고 복사를 해서 던져주는 형식인 것입니다. 그렇기 때문에 hap() 함수를 실행해서 전달한 값들이 바뀌어도 원래 su1과 su2의 값은 바뀌지 않습니다. 예제를 조금 바꿔서 이 내용을 확인해보겠습니다.

▲ 역시 10과 20으로 초기화한 int 변수 su1과 su2를 hap() 함수를 호출하면서 인자로 전달하고 있고 hap()에서는 그 값을 받아서 각각 50과 60을 증가한 후 출력하고 있습니다. 당연히 증가된 값이 출력이 될 것입니다. 그렇다면 이 함수를 실행한 후 마지막으로 다시 한 번 su1과 su2의 값을 출력하고 있는데요. 증가된 값이 출력될까요? 아니겠죠? 앞에서 정리한 대로 변수들의 값 자체가 옮겨간 것이 아니고 복사돼서 전달한 것이기 때문에 원래의 값에는 변화가 없는 것입니다. 프로그램을 실행해서 결과를 확인하고 마무리하겠습니다.


▲ hap()에서 더해진 값들이 출력되어도 원래의 값은 변함이 없다는 걸 확인할 수 있습니다.


 이렇게 해서 전달인자의 개념을 알아봤는데요. 대충 정리하자면 전달되는 인자는 변수 자체의 값을 옮기는 것이 아니라 같은 크기의 값을 복사해서 전달하기 때문에 다른 함수에서 그 값의 크기에 변화가 생기더라도 기존의 값은 변화가 없다는 점을 확인해봤습니다. 수고하셨어요.

저작자표시 비영리 변경금지
Posted by 차케요

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

카테고리

NEW (900)
아이폰 개발 기초 (7)
취미 (16)
아두이노 (16)
[안드로이드] 어플만들기 (77)
안드로이드 기초 다지기 (61)
슈팅게임 만들기 (4)
[JAVA]자바 공부하기 (48)
C언어 알고리즘 (61)
[Unity3D]유니티3D 강좌 (7)
컴퓨터 (325)
포토샵CS2 강좌 (6)
유용한 프로그램 (244)
리눅스 노트정리 (22)
임베디드 리눅스 (11)
New블로그 (9)
음식의 효능 (4)
일반상식 (56)
HTML 공부 (40)
포토샵 공부 (36)
엑셀 (6)
파워포인트 공부 (19)
노트정리 (38)
일상 (33)
TV영화 (85)
방명록 : 관리자 : 글쓰기
차케요's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

다루두루

공부하면서 정리하는 노트같은 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • NEW (900)
    • 아이폰 개발 기초 (7)
    • 취미 (16)
      • 아두이노 (16)
    • [안드로이드] 어플만들기 (77)
      • 안드로이드 기초 다지기 (61)
      • 슈팅게임 만들기 (4)
    • [JAVA]자바 공부하기 (48)
    • C언어 알고리즘 (61)
    • [Unity3D]유니티3D 강좌 (7)
    • 컴퓨터 (325)
      • 포토샵CS2 강좌 (6)
      • 유용한 프로그램 (244)
    • 리눅스 노트정리 (22)
      • 임베디드 리눅스 (11)
    • New블로그 (9)
    • 음식의 효능 (4)
    • 일반상식 (56)
    • HTML 공부 (40)
    • 포토샵 공부 (36)
    • 엑셀 (6)
    • 파워포인트 공부 (19)
    • 노트정리 (38)
    • 일상 (33)
    • TV영화 (85)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바