반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <stdio.h> #include <string.h> // strcpy가 존재 typedef struct { char name[100]; int price; //int count; }Item; void PrintItem(Item *pitem); // call by pointer void setItem1(Item argitem); // call by Value void setItem2(Item *pitem, const char *, int); // call by pointer void main() { Item item = {"사과",1000}; Item item2; setItem2(&item2, "복숭아", 1500); PrintItem(&item2); setItem1(item2); } void PrintItem(Item *pitem) // call by pointer식으로 전달했기에 // call by value보다 크기도 줄고, 처리 속도면에서도 빠르다. { printf("setItem2 and PrintItem : %s %d\n",pitem->name, pitem->price); } void setItem1(Item argitem) { printf("argItem : %s %d\n",argitem.name,argitem.price); } void setItem2(Item *pitem, const char *name, int price) // name은 변하지 않으므로 const를 쓰면 좋다. { strcpy(pitem->name, name); // name의 값을 pitem->name로 복사 pitem->price = price; } | Crocus |
반응형
'Basic > C' 카테고리의 다른 글
char 배열에 한글을 넣을 때 현상 (0) | 2015.12.20 |
---|---|
배열과 포인터를 이용한 예제 (0) | 2015.12.05 |
static 변수 (0) | 2015.11.21 |
구조체 배열 포인터 (0) | 2015.11.21 |
구조체 포인터 (0) | 2015.11.21 |