iOS开发分分钟搞定C语言?结构体和枚举
作者:CoderLFYue 发布时间:[ 2016/8/19 13:51:10 ] 推荐标签:测试开发技术 iOS
一、结构体
在前面的数组分享中,把同一类型的数据进行保存通过数组,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。那么如何通过一个方式将不同类型的数据进行存储呢?
为此,C语言专门提供了一种构造类型来解决上述问题,这是结构体,它允许内部的元素是不同类型的。
二、结构体的定义
1.先定义结构体类型, 在定义结构体变量
struct student {
int age ;
char *name;
double height;
};
struct student sd;
2.定义结构体类型的同时定义结构体变量
struct student2{
int age;
char *name;
double height;
}sd2;
sd2.age = 16;
sd2.name = “JAMES”;
sd2.height = 1.9;
3.定义结构体类型的同时定义结构体变量, 并且省略结构体名称
struct {
int age;
char *name;
double height;
}sd3;
sd3.age = 17;
sd3.name = “james”;
sd3.height = 1.88;
定义结构体类型的同时定义结构体变量, 并且省略结构体名称的注意:
弊端: 由于结构体类型没有名称, 所以以后不能使用该结构体类型
优点: 如果结构体类型只需要使用一次, 那么可以使用该方式
三、结构体初始化
1.定义的同时初始化
struct student sd = {18,”james”,1.87};
2.先定义后初始化(一次性初始化)
struct student sd2;
sd2 = (struct student){18,”james”,1.98};
3.先定义再初始化(逐个初始化)
struct student sd3;
sd3.name = “james”;
sd3.age = 18;
sd3.height = 1.87;
4.指定将数据赋值给指定的属性
struct student sd4 = {.height = 1.76,.age = 19,.name = “james”};
四、结构体数组
跟结构体变量一样,结构体数组也有3种定义方式:
方式一:
struct Student {
char *name;
int age;
};
struct Student stu[5]; //定义1
方式二:
struct Student {
char *name;
int age;
} stu[5]; //定义2
方式三:
struct {
char *name;
int age;
} stu[5]; //定义3
结构体数组的初始化:
truct {
char *name;
int age;
} stu[2] = { {“Jmes”, 21}, {“JJ”, 30} };
五、结构体函数
将结构体变量作为函数参数进行传递时,其实传递的是全部成员的值,也是将实参中成员的值一一赋值给对应的形参成员。因此,形参的改变不会影响到实参。相当于拷贝。
// 定义一个结构体
struct Student {
int age;
};
void test(struct Student stu) {
printf(“修改前的形参:%d
”, stu.age);
// 修改实参中的age
stu.age = 10;
printf(“修改后的形参:%d
”, stu.age);
}
int main(int argc, const char * argv[]) {
struct Student stu = {30};
printf(“修改前的实参:%d
”, stu.age);
// 调用test函数
test(stu);
printf(“修改后的实参:%d
”, stu.age);
return 0;
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11