구조체 및 공용 구조체 멤버Structure and Union Members

"멤버 선택 식"은 구조체와 공용 구조체의 멤버를 참조합니다.A "member-selection expression" refers to members of structures and unions. 이러한 식은 선택한 멤버의 값과 형식을 갖게 됩니다.Such an expression has the value and type of the selected member.


postfix-expression  
.  
identifier  
postfix-expression  
->  
identifier  

다음 목록에서는 멤버 선택 식의 두 가지 형태에 대해 설명합니다.This list describes the two forms of the member-selection expressions:

  1. 첫 번째 형태에서 postfix-expressionstruct 또는 union 형식의 값을 나타내며, identifier는 지정된 구조체 또는 공용 구조체의 멤버 이름을 지정합니다.In the first form, postfix-expression represents a value of struct or union type, and identifier names a member of the specified structure or union. 연산값은 identifier의 값이며 postfix-expression이 l-value인 경우 l-value입니다.The value of the operation is that of identifier and is an l-value if postfix-expression is an l-value. 자세한 내용은 L-Value 및 R-Value 식을 참조하세요.See L-Value and R-Value Expressions for more information.

  2. 두 번째 형태에서 postfix-expression은 구조체 또는 공용 구조체에 대한 포인터를 나타내며, identifier는 지정된 구조체 또는 공용 구조체의 멤버 이름을 지정합니다.In the second form, postfix-expression represents a pointer to a structure or union, and identifier names a member of the specified structure or union. 값은 identifier의 값이며 l-value입니다.The value is that of identifier and is an l-value.

    두 가지 형태의 멤버 선택 식은 비슷한 효과가 있습니다.The two forms of member-selection expressions have similar effects.

    마침표(.) 앞의 식이 포인터 값에 적용된 간접 참조 연산자(\)로 구성된 경우 멤버 선택 연산자(->)를 포함하는 식은 마침표를 사용하는 식의 약식 버전입니다.In fact, an expression involving the member-selection operator (->) is a shorthand version of an expression using the period (.) if the expression before the period consists of the indirection operator (****) applied to a pointer value. 따라서Therefore,


expression  
->  
identifier  

위의 식은 아래의 식과 동일합니다.is equivalent to


(*  
expression  
) .  
identifier  

여기서 expression은 포인터 값입니다.when expression is a pointer value.

예제Examples

다음 예제에서는 이 구조체 선언을 참조합니다.The following examples refer to this structure declaration. 이러한 예제에서 사용하는 간접 참조 연산자(\)에 대한 자세한 내용은 간접 참조 및 주소 연산자를 참조하세요.For information about the indirection operator (****) used in these examples, see Indirection and Address-of Operators.

struct pair   
{  
    int a;  
    int b;  
    struct pair *sp;  
} item, list[10];  

item 구조체에 대한 멤버 선택 식은 다음과 같습니다.A member-selection expression for the item structure looks like this:

item.sp = &item;  

위의 예제에서 item 구조체의 주소는 구조체의 sp 멤버에 할당됩니다.In the example above, the address of the item structure is assigned to the sp member of the structure. 이는 item이 자신에 대한 포인터를 포함하고 있음을 의미합니다.This means that item contains a pointer to itself.

(item.sp)->a = 24;  

이 예제에서는 포인터 식 item.sp를 멤버 선택 연산자(->)와 함께 사용하여 a 멤버에 값을 할당합니다.In this example, the pointer expression item.sp is used with the member-selection operator (->) to assign a value to the member a.

list[8].b = 12;  

이 문은 구조체 배열에서 개별 구조체 멤버를 선택하는 방법을 보여 줍니다.This statement shows how to select an individual structure member from an array of structures.

참고 항목See Also

멤버 액세스 연산자: . 및 ->Member Access Operators: . and ->