반응형

구조체(7-2)

 

 


 

문제풀이.c
0.00MB

 

 

 

 


 

위의 코드를 기반으로 해석과 이해를 해보자.

 

4 ~ 7번째 줄 : 이제 이 부분은 다들 이해가 될 것이다.

 

구조체 student를 선언하고, 멤버로 number, name, grade를 정의한다.

 

함수 외부에 있어서 소스 파일 내부의 모든 함수에서 사용 가능하다.

 


 

11 ~ 14번째 줄 : 이 부분은 어느 정도 대충 알 것이다.

 

student 구조체 변수 s를 선언하고,

 

number에는 20070001

 

name에는 "ss0x00"

 

grade에는 4.3으로 초기화한다.

 

그리고 student 구조체 포인터 p를 선언한다.

 

이제 14번째 줄에서 구조체 포인터 p에 구조체 변수 s의 주소 값을 대입한다.

 

그럼 이제부터 구조체 포인터 p는 구조체 변수 s를 가리키게 된다.

 


 

16 ~ 18번째 줄 : 일단 16번째 줄에서 구조체 변수 s의 멤버들을 참조해서 출력한다.

 

그리고 17번째 줄에서 구조체 포인터 p를 이용해서 구조체 변수 s의 멤버들을 참조한다.

 

(*p)이라고 표기하는 것은 s라고 표기하는 것과 같은 의미이다.

 

따라서 (*p).number는 s.number과 같은 의미를 가진다.

 

이제 마지막 18번째 줄에서는 구조체 포인터 p를 이용해서 

 

변수 s의 멤버를 참조하는 또 다른 방법인데,

 

이때 연산자 '->'는 간접 멤버 연산자로써 구조체 포인터가 가리키는 구조체 변수의

 

멤버로 접근할 수 있게 해 준다.

 

즉, '->' 연산자를 이용해서 구조체 포인터에서 바로 구조체 변수의 멤버로 접근하는 것이다.

 

-

 

다음 구조체(7-3) 예제에서는 포인터를 멤버로 가지는 구조체에 대해서 알아보자.

반응형

+ Recent posts