변수나 포인터와 같이 구조체 형 데이터는 함수의 인자로 사용할 수 있으며, 함수의 결과 값으로 구조체를 반환할 수도 있다.
// 함수의 인자로 구조체 변수를 사용
#include <stdio.h>
struct user
{
char name[20];
char phone[14];
int quick;
};
void display_st(struct user data);
int main(void)
{
struct user d={"김명환", "011-123-4567", 1};
display_st(d);
return 0;
}
void display_st(struct user data)
{
printf("name : %s\n", data.name);
printf("phone : %s\n", data.phone);
printf("quick : %d\n", data.quick);
}
// 실행 결과
// 함수의 인자로 구조체 포인터를 사용
#include <stdio.h>
#include <string.h>
struct user
{
char name[20];
char phone[14];
int quick;
};
void display_st(struct user *data);
void change_st(struct user *data);
int main(void)
{
struct user d={"김명환", "011-123-4567", 1};
display_st(&d);
change_st(&d);
display_st(&d);
return 0;
}
void display_st(struct user *data)
{
printf("name : %s\n", data->name);
}
void change_st(struct user *data)
{
strcpy(data->name, "이진영");
}
// 실행 결과
// 함수의 인자로 구조체 배열을 사용
#include <stdio.h>
struct user
{
char name[20];
char phone[14];
int quick;
};
void display_st(struct user *s, int n);
int main(void)
{
user d[2]={{"김명환", "011-123-4567", 1},
{"이진영", "010-120-5638", 5}};
display_st(d,2);
return 0;
}
void display_st(struct user *s, int n)
{
int i;
for(i=0;i<n;i++)
{
printf("name :%s\n", s[i].name);
printf("phone :%s\n", (s+i)->phone);
printf("quick :%d\n", s[i].quick);
printf("\n");
}
}
// 실행 결과
// 함수의 인자로 구조체 변수를 사용
#include <stdio.h>
struct user
{
char name[20];
char phone[14];
int quick;
};
void display_st(struct user data);
int main(void)
{
struct user d={"김명환", "011-123-4567", 1};
display_st(d);
return 0;
}
void display_st(struct user data)
{
printf("name : %s\n", data.name);
printf("phone : %s\n", data.phone);
printf("quick : %d\n", data.quick);
}
// 실행 결과
// 함수의 인자로 구조체 포인터를 사용
#include <stdio.h>
#include <string.h>
struct user
{
char name[20];
char phone[14];
int quick;
};
void display_st(struct user *data);
void change_st(struct user *data);
int main(void)
{
struct user d={"김명환", "011-123-4567", 1};
display_st(&d);
change_st(&d);
display_st(&d);
return 0;
}
void display_st(struct user *data)
{
printf("name : %s\n", data->name);
}
void change_st(struct user *data)
{
strcpy(data->name, "이진영");
}
// 실행 결과
// 함수의 인자로 구조체 배열을 사용
#include <stdio.h>
struct user
{
char name[20];
char phone[14];
int quick;
};
void display_st(struct user *s, int n);
int main(void)
{
user d[2]={{"김명환", "011-123-4567", 1},
{"이진영", "010-120-5638", 5}};
display_st(d,2);
return 0;
}
void display_st(struct user *s, int n)
{
int i;
for(i=0;i<n;i++)
{
printf("name :%s\n", s[i].name);
printf("phone :%s\n", (s+i)->phone);
printf("quick :%d\n", s[i].quick);
printf("\n");
}
}
// 실행 결과
'공부 > c언어' 카테고리의 다른 글
[c언어] 구조체를 헤더파일로 불러오는 프로그램 (0) | 2011.06.20 |
---|---|
[c언어] 함수의 결과값으로 구조체를 반환 (0) | 2011.06.19 |
[c언어] 구조체 배열의 데이터를 구조체 포인터에 대입 (0) | 2011.06.15 |
[c언어] 구조체 배열의 초기화 (0) | 2011.06.15 |
[c언어] 구조체 변수, 구조체 멤버 간의 데이터 교환 (0) | 2011.06.15 |