구조체 및 공용 구조체 멤버
구조체와 공용 구조체의 멤버에 "구성원 선택 식"을 의미합니다.이러한 식의 값과 형식을 선택한 구성원의 있습니다.
postfix-expression . identifier
postfix-expression –> identifier
이 두 가지를 형식의 구성원 선택 식입니다.
첫 번째 폼에서 후 위 식 값을 나타내는 struct 또는 union 형식, 및 식별자 지정 된 구조체 또는 공용 구조체의 멤버 이름을 지정 합니다.작업의 값을이 식별자 및 하는 경우는 l-값이 후 위 식 는 l-값이.참조 하십시오 L 값 및 R-Value 식 에 대 한 자세한 내용은.
두 번째 폼에서 후 위 식 구조체 또는 공용 구조체에 대 한 포인터를 나타내는 및 식별자 지정 된 구조체 또는 공용 구조체의 멤버 이름을 지정 합니다.값인 식별자 는 l-값입니다.
구성원 선택 식에는 두 가지 유사한 효과가 있습니다.
실제로 멤버 선택 연산자를 포함 하는 식 (->)의 기간을 사용 하 여 식의 속기 버전입니다 (.) 식이 마침표 앞의 간접 참조 연산자 구성 됩니다 경우 (*) 포인터 값에 적용 됩니다.따라서
expression –> identifier
동일한 함수는
(*expression) . identifier
때 식 포인터 값입니다.
예제
다음 예제에서는이 구조체 선언 하기를 참조 하십시오.간접 참조 연산자에 대 한 내용은 (*)이이 예제 사용을 참조 하십시오 간접 참조 및 주소 연산자.
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
구성원 선택 식에는 item 구조를 다음과 같이 보입니다:
item.sp = &item;
위 주소를 예에서를 item 구조에 할당 되는 sp 구조체의 멤버입니다.따라서 item 자체에 대 한 포인터를 포함 합니다.
(item.sp)–>a = 24;
이 예제에서는 포인터 식 item.sp 멤버 선택 연산자에서 사용 되었습니다 (->) 멤버에 값을 할당 a.
list[8].b = 12;
이 문은 각 구조체 멤버는 구조체의 배열에서 선택 하는 방법을 보여 줍니다.