먼저 Func 함수의 리턴값과 관련한건 신경안써도된다....
Func 함수만 보면 된다.
(메인에서 리턴받아서 따로 연산안함. 여기서는 Func함수만 다룬다)
|
먼저 이 함수는 ref의 주소값을 받았다. (Call by Reference)
1. main()함수에서 함수인자로 val1의 변수를 직접적으로 보내주었고, 함수는 이 인자의 주소를 가져온다.
2. adress1 변수(정수형) 는 ref의 주소값을 가져온다. (adress1 == &val1)
3. &adress1 는 ref와 관계없이 adress1 변수가 할당된 메모리 주소를 출력한다.
4. adress1이 가지고있는 주소값으로 바로 접근해서 해당주소가 가지고있는 값을 출력하고 싶었다.
- > 먼저 1차적으로 adress1의 값은 ref의 주소값이다. 여기서는 출력값을 참고하자면 1375220 이 되겠다. 여기서는 단지 정수값 그 자체일뿐,,
- > 2차적으로 (int*) 형으로 형변환하면 이 값을 포인터 int형으로 형변환 한다.
. 출력해보면 역시 값은 같다.....printf("%d", (int*)adress1 ); 의 값은 역시 1375220 이 나온다.
- > 3차적으로 이 주소가 가르키는 * 값을 찾는다. printf("%d", *(int*)adress1); 아래와 같이 10이 나온다.
'C/C++' 카테고리의 다른 글
MFC 메모리릭 잡기 (0) | 2012.12.09 |
---|---|
Server 프로그램 기본소스 분석 (0) | 2012.06.17 |