본문 바로가기
01.Bit 단기/C

24_구조체포인터및인자전달

by chojju 2018. 4. 28.
반응형

#include <stdio.h>
#include <string.h> // 문자열 h

typedef struct tagmember member;
struct tagmember
{
 char name[20];  //이름
 char gender;  //성별
 int  age;   //나이
};

void foo(member m);
void woo(member *pm);
void goo(char *n, char g, int a);
void hoo(char *n, char *g, int *a);
int main()
{
 member mem1 = { "홍길동", 'm', 10 };

 //1. 구조체 값 전달
 foo(mem1);

 //2. 구조체 주소 전달
 woo(&mem1);

 //3. 구조체 맴버 전달
 goo(mem1.name, mem1.gender, mem1.age);

 hoo(mem1.name, &mem1.gender, &mem1.age);

 printf("%s\n", mem1.name);
 printf("%c\n", mem1.gender);
 printf("%d\n", mem1.age);
}

void foo(member m) //member m = mem1;
{
 //별도의 m 저장공간을 갖고 있다.
 //함수 종료시 해당 공간은 사라진다.
}

void woo(member *pm)//member *pm = &mem1;
{
 strcpy(pm->name, "홍길순");
 pm->gender = 'f';
 pm->age = 5;
}
//Call by A, V, V
void goo(char *n, char g, int a)
{
 strcpy(n, "이길순");
}
//Call by A, A, A
void hoo(char *n, char *g, int *a)
{
 strcpy(n, "김길동");
 *g = 'm';
 *a = 25;
}

반응형

'01.Bit 단기 > C' 카테고리의 다른 글

26_typedef사용법  (0) 2018.04.28
25_구조체실습, 비트필드, 공용체  (0) 2018.04.28
23_구조체배열  (0) 2018.04.28
22_구조체1  (0) 2018.04.28
21_명령행인자  (0) 2018.04.28

댓글