wordpress 4.5 多站点不同数据,关键词推广,用wordpress安全吗,python基础教程 pdf#x1f525; 个人主页#xff1a;大耳朵土土垚 目录 结构体的介绍结构体定义结构成员的类型结构体变量的定义和初始化结构体成员的访问结构体传参 结构体的介绍
在C语言中#xff0c;结构体是一种用户自定义的数据类型#xff0c;它允许开发者将不同类型的变量组合在一起… 个人主页大耳朵土土垚 目录 结构体的介绍结构体定义结构成员的类型结构体变量的定义和初始化结构体成员的访问结构体传参 结构体的介绍
在C语言中结构体是一种用户自定义的数据类型它允许开发者将不同类型的变量组合在一起形成一个新的数据类型。结构体可以包含多个成员变量每个成员可以是不同的数据类型例如整型、字符型、浮点型等。 结构是一些值的集合这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构体定义
结构体的定义使用关键字struct后面跟随结构体的名称。
例如描述一个人
struct Person {char name[20];int age;float height;
};上述代码定义了一个名为Person的结构体它包含三个成员变量name、age和height。name是一个字符型数组有20个元素age是一个整型变量height是一个浮点型变量。 结构成员的类型
结构成员的类型可以是以下几种
基本数据类型包括整型int、浮点型float、字符型char、布尔型bool等。枚举类型表示一组具有离散值的变量。结构体类型用来定义多个不同类型的变量形成一个新的数据类型。结构体中可以包含基本数据类型、枚举类型、数组、指针等。指针类型表示变量的地址。数组类型表示一组相同类型的变量。函数类型表示函数的参数和返回值类型。
这些类型可以在结构体中作为成员类型用于定义结构体的成员变量。
结构体变量的定义和初始化
结构体变量定义有两种方式一种在声明时候直接定义一种在使用时再定义
struct Point
{int x;int y;
}p1; //声明类型的同时定义变量p1//需要使用时
struct Point p2; //定义结构体变量p2定义变量的同时初始化
struct Point p3 {1, 2};//定义结构体变量p3并赋值1和2结构体嵌套初始化
struct Node
{int data;struct Point p;struct Node* next;
}n1 {10, {4,5}, NULL}; //结构体嵌套初始化struct Node n2 {20, {5, 6}, NULL};//结构体嵌套初始化结构体成员的访问
通过点操作符.访问结构变量的成员: 点操作符接受两个操作数。 例如
struct Stu //类型声明
{char name[15];//名字int age; //年龄
};struct Stu s { tutu,20};
printf(%s,%d, s.name, s.age);//使用.访问s中的成员结构体指针访问指向变量的成员:
struct Stu //类型声明
{char name[15];//名字int age; //年龄
};struct Stu s { tutu,20};
struct Stu* ps s;
printf(%s,%d, ps-name, ps-age);//使用-访问ps指向的结构体成员结构体传参
结构体传参可以通过以下两种方式
传值传参 将结构体的副本传递给函数。 //结构体传值传参
void print1(struct Stu s)
{printf(%d\n, s.age);
}
struct Stu s { tutu,20};
print1(s);
传地址传参 将结构体的指针传递给函数以便在函数内部修改结构体的内容。 //结构体地址传参
void print2(struct S* ps)
{printf(%d\n, ps-num);
}
struct Stu s { tutu,20};
print2(s);结构体传参的时候要传结构体的地址。 这是因为函数传参的时候参数是需要压栈的。如果传递一个结构体对象的时候结构体过大参数压栈的的系统开销比较大所以会导致性能的下降。此外传递结构体地址也便于我们修改结构体的内容。