C提供基本数据类型,如 int
, char
, float
但是为了解决现实世界中的问题,我们需要的不仅仅是这些类型。较新的面向对象语言有很多特性来实现实际情况。例如, C++
提供 Object Oriented
我们可以实现真实世界对象的功能。C编程缺少这些特性,但提供了类型。struct用于提供复合数据类型,它可以提供多个基元类型。
null
定义结构
定义结构类似于联合。我们将提供要存储在结构中的元素和结构的名称,如下面的语法所示。
struct [STRUCT_NAME] { MEMBER... } STRUCT_VARIABLES];
语法可以提供一些关于struct的提示,但是理解和学习struct的最好方法是将struct定义为一个真实的例子。在本例中,我们将创建一个名为 Student
哪些有以下成员?
-
name
学生姓名为char
变量 -
id
持有学号为int
我们只使用了两个成员使事情变得简单,但是除了内存之外,其他成员没有限制。
struct Student { int id; char name[20]; };
初始化结构
我们可以初始化如下所示的新结构变量,只需提供 struct
关键字和要使用的结构名和变量名。这里我们创建一个名为 s1
具有 Student
结构类型。
struct Student s1;
访问结构成员
我们已经定义了结构成员 id
和 name
. 我们需要设置并获取这些成员的值。我们可以简单地用结构变量名和成员名访问它们。
#include#include struct Student { int id; char name[20]; }; int main( ) { struct Student s1; s1.id=123; strcpy( s1.name, "Ahmet Ali"); printf( "Studen ID : %i", s1.id); printf( "Studen Name : %s", s1.name); return 0; }
我们已经用下面的行设置了id
s1.id=123;
我们还可以访问 id
变量如下。
printf( "Studen ID : %i", s1.id);
结构作为函数参数
我们已经看到结构提供了良好的灵活性。我们通常使用结构将值传递给函数。在这一部分中,我们将研究如何将结构变量传递给函数。我们需要像定义普通结构一样,将结构参数定义为函数参数。
#include#include struct Student { int id; char name[20]; }; void print(struct Student s) { printf( "Studen ID : %i", s.id); printf( "Studen Name : %s", s.name); } int main() { struct Student s1; s1.id=123; strcpy( s1.name, "Ahmet Ali"); print(s1); return 0; }
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END