일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 누산기
- serial통신
- TMS320F28335PGFA
- OPAMP
- latch
- 절대값
- vfd
- 주소버스
- 파이프 라인(pipeline)
- 프로세서 기능
- MAX232
- 포인터
- LSB
- 오실레이터
- Visual Studio 2008
- 킬로바이트
- 조건 연산자
- H-bridge
- 문자열과 포인터
- 프로그램 카운터
- 메가바이트
- cisc
- risc
- Call-By-Value
- Call-By-Reference
- 메모리
- C언어
- 래치
- 제어버스
- 데이터 버스
Archives
- Today
- Total
Fortune Smiles On Me
Call-By-Value 와 Call-By-Reference 본문
Call-By-Value(값에 의한 호출) 와 Call-By-Reference(참조에 의한 호출) 라는 것은 함수의
호출 방식을 의미하는 것이다.
i) Call-By-Value(값에 의한 호출)
가장 일반적인 함수 호출의 형태가 바로 Call-By-Value 이다.
Call-By-Value의 기본 호출 방식은 "값의 복사"이다.
swap이라는 함수를 통해서 val1 과 val2의 값을 바꾸고 있다.
실행창에서 먼저 printf 된 것은 a, b의 값을 temp라는 변수를 통해서 바꿔서 변경했다.
그러나 swap함수를 나와서 printf한 결과 a와 b의 값이 바뀌지 않았다 .
그 이유는 main 함수에서 swap함수를 호출하면 서 val1과 val2가 지니고 있는 값을 매개 변수 a와 b에 복사한다. 이순간 부터 val1, val2와 a, b는 더이상 상관관계를 갖지 않는다. 그러므로 a,b는 val1과 val2에 영향을 미치지 못한다.
ii)Call-By-Reference(참조에 의한 호출)
Call-By-Reference 라는 것은 주소값의 참조로 인한 호출이다.
함수 호출 시 변수의 주소를 전달해서 인자로 전달된 주소가 가리키는 변수의 조작을 함수 내에서 가능하게 하는 것이다.
호출 방식을 의미하는 것이다.
i) Call-By-Value(값에 의한 호출)
가장 일반적인 함수 호출의 형태가 바로 Call-By-Value 이다.
Call-By-Value의 기본 호출 방식은 "값의 복사"이다.
swap이라는 함수를 통해서 val1 과 val2의 값을 바꾸고 있다.
실행창에서 먼저 printf 된 것은 a, b의 값을 temp라는 변수를 통해서 바꿔서 변경했다.
그러나 swap함수를 나와서 printf한 결과 a와 b의 값이 바뀌지 않았다 .
그 이유는 main 함수에서 swap함수를 호출하면 서 val1과 val2가 지니고 있는 값을 매개 변수 a와 b에 복사한다. 이순간 부터 val1, val2와 a, b는 더이상 상관관계를 갖지 않는다. 그러므로 a,b는 val1과 val2에 영향을 미치지 못한다.
ii)Call-By-Reference(참조에 의한 호출)
Call-By-Reference 라는 것은 주소값의 참조로 인한 호출이다.
함수 호출 시 변수의 주소를 전달해서 인자로 전달된 주소가 가리키는 변수의 조작을 함수 내에서 가능하게 하는 것이다.
'Programming > C' 카테고리의 다른 글
난 정말 C PROGRAMMING을 공부한 적이 없다구요. (0) | 2012.07.14 |
---|---|
문자와 문자열 처리함수 (0) | 2012.03.03 |
포인터(pointer) 기본 개념 (0) | 2012.02.23 |
3개의 숫자 max값과 min값 구분 (0) | 2012.02.20 |
c언어 함수 (0) | 2012.02.20 |