c++语言基本结构,c语言结构体笔记

  c++语言基本结构,c语言结构体笔记

  整数、字符、布尔值、浮点数等数据类型都是单值的,可以称为基本数据类型。但是字符串是个例外。它由许多字符组成。像这样由基本类型组成的数据类型称为复合数据类型。就像表达式和语句有组合规则一样,基本类型组成的复合类型也有一些组合规则。

  在实际问题中,一组数据往往有不同的数据类型。例如,在学生登记表中,姓名应该是字符型;学号可以是整数或字符类型;年龄应为整数;性别应为字符型;分数可以是整数也可以是实数。显然你不能用数组来存储这组数据。因为数组中所有元素的类型和长度必须一致,所以编译器系统很容易处理它们。为了解决这个问题,在C语言中给出了另一种构造数据类型——“结构”或“结构”。它相当于其他高级语言中的记录。

  “结构”是一种建筑类型,由若干“构件”组成。每个成员都可以是基本数据类型或构造类型。结构是一种“构造”的数据类型,所以必须先定义,才能解释和使用,也就是构造。就像在解释和调用一个函数之前定义它一样。

  定义结构的一般形式是:

  Struct结构名称{成员表列};

  成员列表由几个成员组成,每个成员都是结构的一部分。每个成员还必须进行类型描述,形式为:

  类型说明符成员名称;

  成员的命名应该符合标识符的书写规则。例如:

  struct stu { int numchar name[40];迷人的性爱;浮动分数;};

  在这个结构定义中,该结构被命名为stu,它由四个成员组成。第一个成员是num,一个整数变量;第二个成员是name,一个字符数组;第三个成员是性别,一个性格变量;第四个成员是score,一个实变量。注意,括号后面的分号是必不可少的。定义了结构之后,就可以解释变量了。所有被描述为结构stu的变量都由上述四个成员组成。因此,该结构是一个复杂的数据类型,是一组具有固定数量和不同类型的有序变量。

  有三种方法可以解释结构变量。以上面定义的stu为例来说明。

  1.先定义结构,再解释结构变量。

  比如:

  struct stu { int numchar name[40];迷人的性爱;浮动分数;};struct stu boy1,boy2

  两个变量boy1和boy2是stu结构类型。

  你也可以使用宏定义来创建一个符号常量来表示一个结构类型。例如:

  # define STU struct STU { int num;char name[40];迷人的性爱;浮动分数;};斯图男孩1,男孩2;

  2.在定义结构类型时解释结构变量。

  例如:

  struct stu { int numchar name[40];迷人的性爱;浮动分数;}boy1,boy2

  这种解释形式的一般形式是:

  Struct结构名称{成员表列}变量名表列;

  3)直接解释结构变量。

  例如:

  struct { int numchar name[40];迷人的性爱;浮动分数;}boy1,boy2

  这种解释形式的一般形式是:

  Struct{成员表列}变量名表列;

  第三种方法和第二种方法的区别在于,第三种方法省略了结构名,直接给出了结构变量。三种方法中描述的boy1和boy2变量的结构如下图所示。

  在解释了boy1和boy2变量是stu类型之后,这两个变量的每个成员都可以被赋值。在上面stu结构的定义中,所有成员都是基本数据类型或者数组类型。成员也可以是结构,即嵌套结构。例如,下图显示了另一种数据结构。

  根据该图,可以给出以下结构定义:

  结构日期{ int monthint日;int年;};struct { int numchar name[40];迷人的性爱;结构日期生日;浮动分数;}boy1,boy2

  首先定义一个结构日期,它由三个成员组成:月(month)、日(day)和年(year)。当定义和描述变量boy1和boy2时,它们的成员生日被描述为数据结构类型。成员名可以与程序中的其他变量同名,而不会互相干扰。

  当程序中使用结构变量时,它们通常不是作为一个整体使用的。在ANSI C中,除了允许同类型的结构变量相互赋值之外,结构变量的使用,包括赋值、输入、输出、运算等。一般是由结构变量的成员来实现的。

  结构可变成员的一般形式是:

  结构变量名。成员名称

  例如:

  Boy1.num /*第一个人的学号*/boy2.sex /*第二个人的性别*/

  如果成员本身是一个结构,那么必须一步一步地找到最低级别的成员才能使用。例如:

  男孩1 .生日.月份

  即第一个人出生的月份的成员可以在程序中单独使用,和普通变量完全一样。

  结构变量的赋值就是给成员赋值。它可以通过输入语句或赋值语句来完成。

  例如,下面的示例是为结构变量赋值并输出其值。

  # include stdio . h struct stu { int num;char * name迷人的性爱;浮动分数;}boy1,boy2int main(void){ boy 1 . num=100;boy1.name=张三;Printf(请输入性别和分数:\ n );scanf(%c,%f ,boy1.sex,boy 1 . score);男孩2=男孩1;Printf(学生ID:% d \ n姓名:%s\n ,boy2.num,boy 2 . name);Printf (gender:% c \ nScore: %f\n ,boy2.sex,boy 2 . score);系统(“暂停”);返回0;}运行结果:

  在这个程序中,赋值语句用来给两个成员赋值,num和name,name是一个字符串指针变量。使用scanf函数动态输入性别和分数成员的值,然后整体给出boy1到boy2所有成员的值。最后分别输出boy2的每个成员值。这个例子展示了结构变量的赋值、输入和输出的方法。

  像其他类型的变量一样,结构的每个成员都可以被赋予一个初始值,这被称为结构的初始化。一种是定义结构变量时的初始化,语法格式如下:

  Struct结构名称变量名={初始数据表};

  另一个是在定义结构类型时初始化结构变量。

  结构名称{成员列表;}变量名={初始数据表};

  解释

  结构和结构变量在概念上是不同的。

  类型:未分配内存;变量:分配内存

  类型:不能被赋值、访问或操作。变量:是

  结构变量中的成员可以单独使用,比如普通变量;

  结构可以嵌套

  成员名可以与程序中的变量名相同。

  像其他类型的变量一样,结构变量在定义时可以被初始化和赋值。

  注意:

  1.不能整体引用结构类型变量,只能分别引用结构类型变量的每个成员。

  2.如果成员本身属于一个结构类型,就需要使用几个成员运算符逐级查找最低级别的成员。只有最低级别的成员才能被分配或访问和操作。

  3.可以像普通变量一样对成员变量执行各种操作(可以执行的操作是根据其类型决定的)。

  4.在数组中,数组不能互相赋值,而结构类型变量可以互相赋值。在C程序中,相同结构类型的结构变量允许相互赋值,但不同结构类型的结构变量不允许相互赋值,即使它们包含相同的成员。

  下面的示例初始化一个结构变量。

  # include stdio . h struct stu { int num;char * name迷人的性爱;浮动分数;}boy1,boy2={ 100,张三, M ,100 };int main(void){ boy 1=boy 2;Printf(学生ID:% d \ n姓名:%s\n ,boy1.num,boy 1 . name);Printf (gender:% c \ nScore: %f\n ,boy1.sex,boy 1 . score);系统(“暂停”);返回0;}运行结果:

  在这个例子中,boy2和boy1被定义为外部结构变量,boy1被初始化和赋值。在main函数中,将boy2的值作为一个整体赋给boy1,然后用两个printf语句输出boy1每个成员的值。

  结构是由若干数据项组成的复杂数据对象,这些数据项被称为结构的成员。

  要定义一个结构,需要给出每个成员的类型和名称。

  结构定义只描述一个结构的形式。要在程序中使用结构,你需要声明结构变量。

  点运算符(。)用于访问结构成员。一般形式是:结构变量名。成员名称。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: