C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结
函数的定义
返回值类型 函数名(形式参数列表) {
函数的实现
}
函数不允许嵌套定义
如果函数的定义在主调函数之后,那么要进行提前声明才能使用.
// 匿名结构体,结构体的声明和变量的定义在一起
struct {
int number;
char name[30];
} student1 = {1, "wukong"}, student2 = {2, "bajie"};
// 定义一个MyPoint类型结构体变量
// 格式:struct 结构体类型 变量名 = {初值};
struct MyPoint point1 = {2.9, 3.0};
struct Student stu1 = {"yaoming", 1, 'm', 30, 90.0};
struct MySize size1 = {30.8, 50.0};
struct MyDate date1 = {2015, 7, 29};
// 访问结构体成员:结构体变量名.成员变量名
printf("name = %s\n", stu1.name);
printf("year = %d\n", date1.year);
size1.height = 100.0;
struct Student stu2 = {"mayun", 2, 'm', 50, 99.0};
stu1 = stu2;
printf("stu1.name = %s\n", stu1.name);
// 我们可以通过给结构体变量赋值的形式达到给结构体中数组类型的成员赋值的目的。
// typedef 原类型名 新的类型名
typedef int Integer;
Integer num1 = 30; // 和int num1 = 30; 完全等价
typedef struct Student Student; // 给struct Student结构体类型起一个别名为Student
Student stu3 = {"beikehanmu", 3, 'm', 40, 100.0};
printf("name = %s\n", stu3.name);
// 结构体的内存占用
printf("%lu\n", sizeof(struct MySize));
printf("%lu\n", sizeof(struct MyPoint));
printf("%lu\n", sizeof(struct MyDate));
printf("%lu\n", sizeof(Student));
// 结构体内存占用的两个原则:1、对于每一个结构体成员来说,都会认为前面已经分配了该成员类型所占字节数的整数倍个字节;2、结构体所占有的总字节数一定等于该结构体所有成员中占用字节数最大的数据类型字节数的整数倍。