반응형
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