A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1115302782 中级黑马   /  2015-7-6 22:53  /  532 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、结构体的数组
定义:由相同类型的结构体变量组成的有序的集合。
定义格式:
1) 定义结构体的同时定义结构体数组
struct Car{
    int lunzi;
    int speed;
}cars[5];

2) 使用匿名结构体定义数组
struct {
    int lunzi;
    int speed;
}cars[5];

3)先定义结构体,再定义结构体数组
struct Car cars[5];

初始化:
1) 定义结构体数组的同时进行初始化
struct Car{
    int lunzi;
    int speed;
    char name[20];
}cars[2]={{2,50},{80,300}};

2) 匿名
struct {
    int lunzi;
    int speed;
    int speed;
}cars[2]={{2,50},{80,300}};
3)先定义结构体,再初始化结构体数组
struct Car cars[2]={{2,50},{80,300}};

4)先定义数组,后初始化
cars[0].lunzi = 4;
cars[0].speed = 200;
//cars[0].name="xxxx"; 错误的
strcpy(cars[0].name,"xxxx"); const char a;

通过数组角标整体去初始化 cars[1]=(struct Car){6,100};


2、结构体指针
定义:指向结构体的指针
格式:结构体类型 * 结构体指针变量名;
struct Student stu1;
struct Studetn *pstu;
pstu = &stu1;

作用:可以间接访问结构体变量中保存的成员变量值
(*pstu).name
(*pstu).sno 新的访问方法
pstu->name  // 只有结构体指针变量才可以
等价于 (*pstu).name


3、结构体与函数之间的关系
1)结构体变量作为函数的参数 (值传递)
2)结构体指针作为函数的参数 (地址传递)


4、枚举类型
使用场合:在开发中,如果一个变量只有有限的几个取值,可以使用枚举

1)枚举类型
enum 枚举类型名{枚举值1,值2,值3,...};

2)枚举类型的变量
enum SEX{man,women,yao}isex;
enum {man,women,yao}s1;
enum SEX s2;

3)枚举类型变量的使用
1)枚举元素的值
系统默认给枚举变量第一元素赋值为0,后面的元素依次是上一个元素+1

2)给枚举类型变量赋值
isex = man;
printf("%d\n",isex);


5、typedef定义类型
定义:给已经存在的数据类型取一个别名
格式:typedef 原类型 新类型名; //新类型名尽量要大写

5.1、基本数据类型
typedef int  MALATANG;  别名: MALATANG

5.2、用在数组,给数组起别名
typedef int  ARRAY[5];  别名: ARRAY

5.3、给结构体其别名
typedef struct Person P;  别名: P
typedef struct { int screenSize; int ram;} IPHONE; 别名: IPHONE

5.4、给枚举类型起别名
typedef enum Sex{kSexMan,kSexWomen,kSexYao} ISEX;  别名: ISEX

5.5. 给函数指针起别名
typedef int (*FUN)(int,int); 别名:FUN


6、预处理指令的概念
定义:以“#” 开头的一些特殊的指令

作用:
在编译之前做些处理(宏展开,条件编译,文件包含)

常见的预处理指令: 宏

宏:特殊的标示符
宏替换 :在编译之前,在源文件中,所有出现宏名的地方 都用宏代表的字符串 去替换
注意:宏不是语句,不需要分号结束

1)无参宏
#define 宏名 宏代表的字符串
#define M 10
#define AREA 3.14*M*M
#define PI 3.14

2)有参宏
#define Mi(y) y*y+3*y   // y 是形参,不分配空间,不需要写类型
#define MAX(a,b) a>b?a:b
#define SUM(a,b) a+b

7、条件编译
当条件满足的时候去编译一段代码
好处:可移植、生成更小的目标文件
格式:
#if

#elif

#else

#endif

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马