공부/c언어
[c언어] 구조체와 함수. 함수의 인자로 구조체 변수,포인터,배열을 사용
bugwasd
2011. 6. 19. 16:10
변수나 포인터와 같이 구조체 형 데이터는 함수의 인자로 사용할 수 있으며, 함수의 결과 값으로 구조체를 반환할 수도 있다.
// 함수의 인자로 구조체 변수를 사용
#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");
}
}
// 실행 결과