포인터와 구조체

그냥 구조체를 쓴다고 해 보자.

struct 구조{

int 수;

int 열;

};

이제, 구조체를 하나 정의하자.

struct 구조 아싸;

이래놓고서 아싸의 수를 참조하고 싶으면 다음과 같이 하면 된다는건 알려져 있다.

아싸.수

그런데, 구조체라고 포인터로 선언하지 말란 법은 없다. 이렇게 하면 된다

struct 구조 *메롱;

이러면 메롱은 구조라는 형태를 가진 변수를 가리키는 포인터가 된다. 그럼 메롱의 수를 참고하고 싶으면 어떻게 할까?

원래는

(*메롱).수

라고 해야 한다.

*메롱.수

라고 하면 안되는 이유는, 이건

*(메롱.수)

로 해석되어버리기 때문이다. 즉,

메롱.수

라는 포인터가 가리키는 곳으로 가버리기 때문에,

메롱

이 가리키는 곳의 수로 가지를 않는다. 귀찮다. 그래서 새로운 연산자가 있다. 바로 ->이다.

메롱->수

라고 쓰면, 이것은

(*메롱).수

와 동등하다.

자, 오늘도 신기한거 하나 배웠다.

2 thoughts on “포인터와 구조체

Add yours

댓글 남기기

이메일은 공개되지 않습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d 블로거가 이것을 좋아합니다: