구조체 변수와 구조체 포인터 변수의 멤버변수 접근법

다음과 같은 구조체가 있다고 할때


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);

}




+ Recent posts