2007/07/16

A Book On C Chapter 6 연습문제 1번.

다음 코드를 실행시키면 4개의 값이 출력된다. 이것들 중 같은 값들은 몇 개인가?
답에 대해 설명하여라.

char *format = "%p %d %d %d\n";
int i = 3;
int *p = &i;
printf(format, p, *p + 7, 3 * **&p + 1, 5 * (p - (p - 2)));


printf("%p %d %d %d\n", p, *p + 7, 3 * **&p + 1, 5 * (p - (p - 2)));


- p : int 포인터 변수 p의 값. int 변수 i의 주소가 입력되있다.
- *p + 7 : int 포인터 변수 p를 역참조 후 plus 7. 3 + 7 = 10.
- 3 * **&p + 1 : int 포인터 변수 p의 주소값을 역참조 역참조 . 결국 int 포인터 i값을 가리킴. 3 * 3 + 1 = 10.
- 5 * (p - (p - 2)) : p - (p - 2) -> 2? 10일거라고 생각됨


Powered by ScribeFire.

댓글 없음:

댓글 쓰기