list 라는 구조체(struct)를 선언한다. 그 안에는 포인터 변수인 fp가 포함되어 있으며 선언과 동시에 data, 포인터 변수인 p로 초기화하였다.
배열 x가 있다.
p에 data의 주소값을 할당한다. p는 포인터 변수이기 때문에 p는 data의 주소값을 갖는다. 즉, data와 p 둘 다 같은 것을 바라본다 (구조체 list)
p -> fp = x+1; 구조체는 .이 아닌 ->를 사용하기 때문에 p -> fp는 p라는 인스턴스의 fp 멤버 변수 값에 x+1를 할당한다는 뜻 fp는 포인터 변수이기 때문에 x라는 배열이 가리키고 있는 주소값 200에 1을 더한 201이 할당된다.
(++p->fp) 에서 주의할 점은 ++전위연산을 먼저하지 말라는 것
p->fp가 먼저이다. 그럼 p 인스턴스의 fp 변수에 ++ 즉 1을 더하란 뜻이고 아까 201이었기 떄문에 202가 된다 (202) 202의 값이기 때문에 x 배열의 202 주소값이 가지는 값 300이 답이 된다