首页 > 其他 > 详细

C7-struct

时间:2014-03-13 15:13:27      阅读:528      评论:0      收藏:0      [点我收藏+]

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


类型            变量名  = 初值

struct   结构体名

{

类型说明符    成员名;

};

例子:

#import <Foundation/Foundation.h>


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<per2.age?per1:per2;
   min = min.age<per3.age?min:per3;
   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、定义一个结构体变量(包含年月日),计算该日在本年中为第几天?要求写一个days函数。参数是此结构体类型的变量,返回值是整数。

#import <Foundation/Foundation.h>

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


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

           if ((stu.year % 400==0) || ((stu.year % 4==0) && (stu.year % 100 !=0))) {
           Sum++;

   }
   }
   return Sum;

}

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

  Days sds={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;

}

C7-struct,布布扣,bubuko.com

C7-struct

原文:http://8694639.blog.51cto.com/8684639/1372956

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!