예시로 struct sawon ansan, *seoul ;이고구조체 멤버 지정할 때일반변수는 . 를 이용해서포인터변수는 -> 를 이용해서 는 이해가 가는데구조체의 포인터 변수는 일반 포인터 변수처럼 *사용 가능하는 예시가 의문점입니다.(*seoul).name = "홍길동"(*ansan).jikwi = "과장"ansan은 그저 구조체의 일반 변수인데 왜 가능한가요?
이것은 교재가 잘못된 것으로 보입니다.
교재에서도, 구조체의 "포인터" 변수는 일반 포인터 변수처럼 사용할 수 있다고 해놓고
정작 예제에는 일반 변수를 사용하는 예를 보이고 있네요.
ansan 은 구조체의 "포인터" 변수가 아니고 그냥 struct sawon 의 일반 변수이죠.
제가 아는한, 그리고, 최근의 C 표준에서도 이런 사용예는 아직 없습니다.
실제로,
(*ansan).jikwi = "과장"; (*ansan).pay = 500000;
과 같이 사용하면 컴파일 에러가 발생할 것입니다.
에러 내용은 ansan 은 포인터가 아니라는 내용이 될 것입니다.
교재가 항상 맞다고 생각하면 안됩니다.
참아야지! 참아라! 그러면 잘 되어 갈 걸세. 친구여, 정말 자네 말이 맞네. 세상 사람들 틈에 끼여 날마다 일에 쫓기며, 다른 사람들이 하는 일과 그들의 행동을 보기 시작한 이후로 나는 나 지신과 휠씬 더 잘 타협할 수 있게 되었네. 젊은 베르테르의 슬픔 - 괴테