结构体(构造类型),可以存放不同类型的数组


类型            变量名  = 初值

struct   结构体名

{

类型说明符    成员名;

};

例子:

#import


struct person {
   int age;
   char name[20];
   char sex;
};                                                           //分号注意!!!
typedef struct person Person;              //类型重新定义 struct person重新定义为Person

int main(int argc, const char * argv[])
{
   Person per1 ={26,"ZhaoYunlong",'m'};
   Person per2 ={23,"ShenQingjun",'m'};

   return 0;
}
//考试题

char 占 1个字节

int    占4个字节

double 占8个字节

float 占 4个字节

short 占 2个字节

long 占8个字节

bool 占1个字节



typedef

C语言中表示类型定义

1.typedef struct person Person;                 //类型重新定义 struct person重新定义为Person
或者

2.typedef struct person {
int age;
char name[20];
char sex;
}Person;

赋值

三个人选出年龄最小的

int main(int argc, const char * argv[])
{
   Person per1 ={26,"ZhaoYunlong",'m'};
   Person per2 ={23,"ShenQingjun",'m'};
   Person per3 ={26,"LoiChundong",'f'};
   Person min =per1.age    min = min.age    printPerson(min);


return 0;

}


成员访问

MyRect rect = {{3,5},{100,100}};
   rect.origin.x = 15;
   rect.size.width = 150;           //必须点到最后

 嵌套

typedef struct myorigin {
   float x;
   float y;
}MyOrigin;
typedef struct  mysize{
   float width;
   float height;
}MySize;

typedef struct myrect{
   MyOrigin origin;
   MyOrigin size;
}MyRect;

int main(int argc, const char * argv[])
{

   MyRect rect = {{3,5},{100,100}};
   rect.origin.x = 15;
   rect.size.width = 150;
return 0;

}

chong gao dao di <

chong di dao gao >


1、定义一个结构体变量&#xff08;包含年月日&#xff09;&#xff0c;计算该日在本年中为第几天&#xff1f;要求写一个days函数。参数是此结构体类型的变量&#xff0c;返回值是整数。

#import

typedef struct days{          //定义日期结构体
   int year;
   int month;
   int day;
}Days;


int days(Days stu){
   int Sum&#61;0;
   int a[12] &#61; {31,28,31,30,31,30,31,31,30,31,30,31};
   for (int i &#61; 0; i       Sum &#43;&#61;a[i];
   }
   Sum&#43;&#61;stu.day;                              //剩下的一个月几天
   if (stu.month>2){

           if ((stu.year % 400&#61;&#61;0) || ((stu.year % 4&#61;&#61;0) && (stu.year % 100 !&#61;0))) {
           Sum&#43;&#43;;

   }
   }
   return Sum;

}

int main(int argc, const char * argv[])
{

  Days sds&#61;{1992,3,2};        
   printf("%d\n",days(sds));

 //Days sds;
 //scanf("%d %d %d\n",&sds.year,&sds.month,&sds.day);
   printf("%d\n",days(sds));


return 0;

}