第八章宏定义,typedef,结构体,枚举
你好!我是小柒今天和大家学习一下基础C语言的最终章节宏定义,teypedef,结构体,枚举。
宏定义,typedef,结构体,枚举
本节内容
1、宏定义
2、typedef
3、结构体
4、枚举
一、宏定义
小柒什么是宏定义?
答:宏定义又称为宏代换、宏替换,简称“宏”,宏定义是C语言提供的预处理功能。
分类:宏定义分为带参数的宏定义和不带参数的宏定义
//圆周率
#define pi 3.1415926
int main(int argc, const char * argv[]) {
// 圆的直径
float d = 5.1;
// 直径乘圆周率
float Area = pi * d;
printf("Area = %.2f\n",Area);
return 0;
}
打印结果:
Area = 16.02
2)、带参数的宏定义
格式:#define 宏名 (参数表)字符串
#define S(a,b) a*b
示例
#include <stdio.h>
#define S(a,b) a*b
int main(int argc, const char * argv[]) {
int a = S(3,4);
printf("a = %d\n",a);
return 0;
}
打印结果;
a = 12
二、typedef
小柒什么是typedef?
答:typedef为现有类型创建一个新的名字,或称为类型别名。
例如:
typedef int a;//给int类型起了一个新的类型名。
a num = 1; 和int num = 1;是一个意思
创建类型别名有个规律,用新的类型名替代用该类型定义变量的变量名。
三、结构体
小柒什么是结构体?
答:结构体是一种构造数据类型,用途把不同数据类型合成一个整体,自定义数据类型
1、定义一个结构体类型
struct 结构体名{
类型说明符 成员名;
…….;
类型说明符 成员名;
};//注意此处分号不能少
struct Student{
// 结构体声明时不需要赋值
int age;
char *name;
};
示例打印姓名,年龄
#include <stdio.h>
struct Student{
// 结构体声明时不需要赋值
int age;
char *name;
};
int main(int argc, const char * argv[]) {
//先声明结构体,定义结构体变量并初始化
struct Student stu = {20,"name"};
// 用打点的方法
stu.name ="qmy";// 写
char *b = stu.name;//读
stu.age = 20;
int a = stu.age;
printf("name = %s,age = %d\n",b,a);
return 0;
}
打印结果:
name = qmy,age = 20
第二种格式:
声明结构体时,同时声明一个变量(此时结构体名字可以省略),且初始化(即赋值可选)
struct {
// 结构体声明时不需要赋值
int age;
char *name;
}变量名列表;
示例
#include <stdio.h>
struct {
// 结构体声明时不需要赋值
int age;
char *name;
}stu = {20,"name"};
int main(int argc, const char * argv[]) {
// 用打点的方法
stu.name ="qmy";// 写
char *b = stu.name;//读
stu.age = 20;
int a = stu.age;
printf("name = %s,age = %d\n",b,a);
return 0;
}
打印结果:
name = qmy,age = 20
第三种格式:
struct {
// 结构体声明时不需要赋值
int age;
char *name;
}变量名;
示例
#include <stdio.h>
struct Student{
// 结构体声明时不需要赋值
int age;
char *name;
}stu;
int main(int argc, const char * argv[]) {
// 用打点的方法
stu.name ="qmy";// 写
char *b = stu.name;//读
stu.age = 20;
int a = stu.age;
printf("name = %s,age = %d\n",b,a);
return 0;
}
打印结果:
name = qmy,age = 20
四、枚举
小柒什么是枚举?
答:枚举在C/C++/c#中,是一个被命名的整型常数的集合
格式:
enum Num{
x1,
x2 = 0,
x3 = 50,
x4
}x;
小柒提示:枚举的成员用逗号隔开, 最后一个成员可省略。
#include <stdio.h>
int main(int argc, const char * argv[]) {
enum Weekday{sun,mon,tue,wed,thu,fri,sat}day;
int k;
printf("请输入0-6\n");
scanf("%d",&k);
day = (enum Weekday)k;
switch(day)
{
case sun: printf("sunday\n");break;
case mon: printf("monday\n");break;
case tue: printf("tuesday\n");break;
case wed: printf("wednesday\n");break;
case thu: printf("thursday\n");break;
case fri: printf("friday\n");break;
case sat: printf("satday\n");break;
default: printf("输入错误\n");break;
}
return 0;
}
打印结果:
请输入0-6
0
sunday
到现在为止基础C已经讲完了,小柒很感谢你们的陪伴,接下来我们就要开始学习iOS重要的编程Objective-C,希望大家好好准备,为努力的自己加油!