구조체 변수와 구조체 포인터 변수의 멤버변수 접근법
다음과 같은 구조체가 있다고 할때
typedef struct
{
int price;
int count;
} Item;
Item item; //구조체 변수
Item *ptrItem; //구조체 포인터 변수
ptrItem = &item;
일반적인 구조체 변수가 있고, 구조체 포인터 변수가 있다.
일반적인 구조체 변수가 구조체 멤버 변수에 접근코자 할 때는 . 연산자로 접근하고
예) item.price = 100;
반면에 구조체 포인터 변수가 구조체 멤버 변수에 접근코자 할 때는 -> 연산자로 접근한다.
예) ptrItem->price = 100;
아래는 샘플 코드이다.
#include <stdio.h>
typedef struct
{
char name[20];
int price;
int count;
} Item;
void main()
{
Item item = {"수박", 100, 30}; //item은 구조체 변수
Item *ptrItem; //ptrItem은 구조체 포인터 변수
ptrItem = &item;
printf("%s\n", item.name);
printf("%d\n", item.price);
printf("%d\n\n", item.count);
printf("%s\n", ptrItem->name);
printf("%d\n", ptrItem->price);
printf("%d\n", ptrItem->count);
}
'C' 카테고리의 다른 글
C언어에서 2차원 배열인 "포인터의 배열"에 대해서 (0) | 2016.08.03 |
---|---|
C언어에서 enum 사용하기 (0) | 2016.07.27 |
구조체 2차원 포인터(2차원 배열) (0) | 2016.07.18 |
2차원 배열인 "배열의 포인터"와 scanf 활용 (0) | 2016.07.08 |