Programming

[정보처리기사] C언어 문제 풀이(2)

_syd 2023. 9. 5. 22:40

대입하면 위 그림과 같은 상태가 된다.

실행 순서

반복문

sum += *(p+i) 를 실행하기 위해서는

p 값을 알아야함

p = a[0] 이라고 기선언했으므로, sum += *(a[0]+i) 과 같음

 

→ 그렇다면 *(a[0]+i) 는?

배열 + i == &배열[i]

a[0] + i == &a[0]

*(a[0]+i) 는 *( &a[0]) 라고 할 수 있음

⇒ 포인터에서 주소값을 나타내는 것과(&) 그 주소값을 가리키는 것(*)은 서로 상쇄되어 없어짐

⇒ a[0][i] 가 된다.

⇒ a[0][0]은 2이므로 sum 은 2

 

 

 

다시 for 문으로 돌아와서

i = 1, a[0][1]은 3, sum 은 5

 

다시 for 문으로 돌아와서

i = 2, a[0][2]는 5, sum 은 10

** a[0][2] 는 a[1][0] 을 의미한다.

 

다시 for 문으로 돌아와서

i = 3 일 때, 조건식은 거짓이므로 반복문 종료하고 printf 실행 → 10 출력

 

출력

10

 

 

 

728x90