06/07/26 수업내용

DEVELOP/C 2006. 7. 26. 20:02


struct

typedef struct
{
int num;
double grade;
} student;

typedef int (*AP5)[5];
AP5 ap1,ap2,ap3;

int (*)(int,int)func(int (*)(int,int),int(*)(int,int));//에러가남
->
int (* func(int (*)(int,int),int(*)(int,int)))(int,int);//이렇게 바꿈
->
typedef int (*FP)(int,int);
FP func(FP,FP);
->
typedef int FP(int,int);
FP * func(FP *,FP *);



////
int main()
{
student s1,s2,temp;
scanf(%d%lf",&s1.num,&s1.grade);
scanf(%d%lf",&s1.num,&s1.grade);
}
temp=s1;
s1=s2;
s2=temp;//만으로 연산가능!!!
//그외에도 &연산도 가능
////
swap_struct(&s1,&s2);//이것으로 대체도 가능

void swap_struct (student *sp1,student *sp2)
{
student temp;
temp=*sp1;
*sp1=*sp2;//포인터!!
*sp2=temp;
}
////
swap_struct(&s1,&s2);//이것으로 대체도 가능

void swap_struct(student *sp1,student *sp2)
{
//(*sp1).grade;
sp1->grade;//위의 것과 동일!!!
//좌측 구조체포인터변수!!
//우측 구조체 맴버명!!
//간접 맴버참조연산이라고 함//


student temp;
temp=*sp1;
*sp1=*sp2;//포인터!!
*sp2=temp;
}

/////
int main()
{
student sary[5];
//scanf(%d%lf",&sary[i].num,&sary[i]grade);//이것대신
student_input(sary);//함수로대체
return 0;
}
void student_input(student *sp)
{
int i;
for(i=0;i<5;i++)
{
scanf("%d", &sp[i].num);//
scanf("%lf", &sp[i].grade);//
}
}
//
int main()
{
student sary[5];
//scanf(%d%lf",&sary[i].num,&sary[i]grade);//이것대신
student_input(sary);//함수로대체
return 0;
}
void student_input(student *sp)
{
int i;
for(i=0;i<5;i++)
{
scanf("%d", &sp[i].num);//
scanf("%lf", &sp[i].grade);//
}
}

AND