코딩하렴

C언어 배열과 포인터 문제

by 으렴

 

위 문제에서 출력될 값을 맞추세요.

 

정답<

 

1. 괄호 안 P는 주소값이다 주소값에 1을 더하면 다음 번지주소가 나온다 그래서 a[1]의 값이 튀어나온다.

2. a[0]의 값 그대로 나온다.

3. a[0] 값을 출력하고 난 다음 값에 1을 더한다.

4. a[0]에다 이전에 ++한 값을 출력한다.

5. a[0]의 값에 1을 더한 값을 출력한다.

6. 위 그대로이다.

7. 전위 연산으로 p는 주소 값이므로 주소값에 1을 더한 a[1]번째의 값이 대입된다. 여기서 부터 이제 *p는 a[1]이다.

8. a[1]값이 나온다.

9. a[1]의 값에서 1을 더한 것이 나온다.

10. 그대로 나온다.

11. 포인터를 읽기전에 p의 주소와 ++을 먼저 읽는다.

(여기서 a[1]의 값이 나오지만 포인터는 a[2]로 옮겨졌다.)

12. a[2]의 값이 나온다.

13. a[2]의 값에 전위 연산 ++을 한 값이 나온다.

14. 위 그대로이다.

 

 

예전에 C를 공부 할때 오지게 했던 것이다. 다시 기억하는 겸 써 봤다.

포인터로 C의 재미를 알게되었는데 감회가 새롭당 꺌꺌

사이트의 정보

코딩하렴

으렴

활동하기