시나공 IT

통합검색

묻고 답하기

제목 구조체 포인터 변수 문의
자격증 정보처리 기사 실기
도서/쪽 페이지 2019 시나공 정보처리기사 실기(산업기사포함) / 84쪽
등록일 2019-05-16 조회 8
작성자 김*민
84페이지의 구조체 멤버의 지정에 대한 질문 사항입니다.

구조체의 포인터 변수는 일반 포인터 변수처럼 *를 사용하여 멤버를 지정할 수도 있다.
(*seoul).name = "홍길동";
(*ansan).jikwi = "과장";
(*ansan).pay = "홍길동";

질문1. 구조체의 포인터변수 멤버를 지정할 때 (*seoul).name 처럼 괄호를 무조건 써서 지정해야 하나요? *seoul.name 이렇게 지정해주면 안되는건가요?

질문2. (*ansan).jikwi = "과장"; ansan은 포인터변수가 아닌 일반변수로 선언 했는데 *을 써서 지정해 줄 수 있나요?

질문3 . 구조체의 포인터 변수가 아닌 일반 변수로 ->를 사용 하여 멤버를 지정해줄 수 있나요?
ansan->name = "홍길동"; 처럼 말이죠.
첨부파일
  • 첨부파일 없음
제목 답변입니다.
등록일 2019-05-21

안녕하세요. 길벗수험서 운영팀입니다.

 

[1]

예, 불가능합니다.

구조체에 괄호를 지정하지 않으면 C언어의 구문분석기는 *(seoul.name)으로 인식해버려 오류가 발생합니다.

 

[2]

포인터 변수가 아닌 일반변수에 *를 사용할 수는 없습니다.

*는 주소값이 가리키는 위치의 값을 가리키는 식별자이기 때문에, *의 뒤에 붙는 변수에는 항상 주소값인 포인터가 있어야 합니다.

 

[3]

위와 동일합니다. -> 식별자 또한 구조체 포인터 변수에서만 사용할 수 있는 식별자입니다.

 

행복한 하루되세요 :)

첨부파일
  • 첨부파일 없음