“struct结构体名”为结构体数据类型名字,使用结构体类型名才能在程序中定义结构体变量。③“数据类型名结构体成员i;”指定了结构体类型中的一个结构体成员,结构体成员必须像以前的变量定义一样进行说明,成员名的命名规则与变量名相同,要符合标识符的命名原则。④结构体类型定义语句是一条完整的C语句,所以结构体类型的声明要用“;”作为结束符。......
2023-11-20
1.结构体类型变量的定义
在8.1.1节中我们指定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际内存单元。为了能在程序中使用结构类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。可以采取以下三种方法定义结构体类型变量。
(1)先声明结构体类型再定义变量名。
8.1.1节中已定义了一个结构体类型struct student,可以用它来定义变量。例如:
struct student student1,student2/*结构体变量名*/
则表示定义了student1,student2为struct student类型的变量。
在定义了结构体变量后,系统会为之分配内存单元(如student1和student2在内存中各占59个字节)。
应当注意,将一个变量定义为标准类型(基本数据类型)与定义为结构体类型的不同之处在于后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(如struct student类型),因为程序可以定义出许多种不同的结构体类型。而在定义变量为整型(或其他基本数据类型)时,只需指定为int型即可。
(2)在声明类型的同时定义变量。
它的作用与第一种方法相同,即定义了两个struct student类型的变量student1,student2,这种方法定义的一般形式为:
(3)直接定义结构类型变量。(www.chuimin.cn)
其一般形式为:
即不出现结构体名。
关于结构体类型,有几点要说明:
(1)类型与变量是不同的概念,不能混淆。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。
(2)对结构体中的成员(即域)可以单个使用,它的作用与地位相当于普通变量。
(3)结构体中的成员也可以是一个结构体变量。
先声明一个struct date类型,它代表日期并包括3个成员month,day,year。然后再声明struct student类型时,将成员birthday指定为struct date类型。
(4)成员名可以与程序中的变量名相同,二者不代表同一对象。
2.结构体变量的初始化
和其他类型变量一样,结构体变量也可以在定义时指定初始值。
有关C语言程序设计 第2版的文章
“struct结构体名”为结构体数据类型名字,使用结构体类型名才能在程序中定义结构体变量。③“数据类型名结构体成员i;”指定了结构体类型中的一个结构体成员,结构体成员必须像以前的变量定义一样进行说明,成员名的命名规则与变量名相同,要符合标识符的命名原则。④结构体类型定义语句是一条完整的C语句,所以结构体类型的声明要用“;”作为结束符。......
2023-11-20
用户自己定义的结构体类型,与系统定义的标准类型一样,是可以用来定义结构体类型的变量。这种方法定义的结构体类型在程序后面不可使用,因为缺少完整的结构体类型名。......
2023-10-21
3.共用体变量的定义与结构体变量的定义类似,共同体变量的定义也有三种方法:定义类型的同时定义变量;定义类型后,用类型名定义变量;不给类型名,直接定义变量。......
2023-10-21
在输出结构体数据时只能对结构体变量中的各个成员分别进行输入输出。引用结构体变量中的成员的方式为:结构体变量名.成员名例如,student1.num表示student1变量中的num成员,即student1的num项。例如,结构体变量student1可以这样访问各成员:student1.numstudent1.birthday.month注意:不能用student1.birthday来访问student1变量中的成员birthday,因为birthday本身是一个结构体变量。scanf;// 输入student1.num的值printf;// 输出student1的首地址但不能用以下语句整体读入结构体变量:scanf;结构体变量的地址主要用作函数参数,传递结构体的地址。......
2023-11-18
指针变量不同于其他类型的变量,它是专门存放地址的,必须将其定义为“指针类型”。]其中数据类型指的是指针变量指向数据的类型,即指针所指向的数据可以是整型、字符型或实型数等。图7.1指针变量的初始化事实上,指针变量必须被赋值语句初始化后才能使用,否则严重时会造成系统区破坏而死机。......
2023-11-18
例如,对一维结构体数组的初始化就类似于普通二维数组的初始化,初始化中的注意事项也与二维普通数组初始化时相同或类似。同样也不能将结构体数组元素作为一个整体直接进行输入输出,也需要通过输入输出数组元素的每一个成员分量达到输入输出结构体数组元素的目的。对结构体数组元素操作的唯一例外是可以将结构体数组元素作为一个整体赋给同类型数组的另外一个元素,或赋给一个同类型的结构体变量。结构体数组操作示例。......
2023-11-20
指向结构体变量的指针变量叫结构体类型指针变量,其定义方式、使用方法与指向基本变量的方法相同。使用结构体指针变量时还需要特别注意,结构体变量的地址与结构体变量成员的地址是不同的。已知某学生3门课程的成绩存放在一个结构体变量中,请设计一个独立的函数计算该学生的平均成绩,要求函数使用结构体指针变量做函数的形式参数。......
2023-11-20
图5.3指针变量指针变量本身也是变量,所以指针变量在使用之前也需要定义。为指针变量赋值的方法有两种:一种是定义后,使用赋值语句的方式;另外一种是定义的同时进行初始化方式。......
2023-11-20
相关推荐