图5.3指针变量指针变量本身也是变量,所以指针变量在使用之前也需要定义。为指针变量赋值的方法有两种:一种是定义后,使用赋值语句的方式;另外一种是定义的同时进行初始化方式。......
2023-11-20
联合体(共用体)类型定义的一般形式为:
联合体类型的定义确定了参与共用存储区域的成员项以及成员项具有的数据类型。C语言中还允许结构体、联合体以及数组等构造类型数据相互嵌套。定义联合体变量的形式与定义结构体变量完全相似,只是把关键字struct换成union。也可以将类型定义和变量定义分开,或者直接定义联合体变量,有以下3种形式:
·先定义联合体类型,然后定义联合体变量。
union联合体名
{
成员列表;
};
union联合体名变量列表;
·定义联合体类型的同时定义联合体类型变量。
union联合体名
{
成员列表;
}变量列表;
·不定义类型名直接定义联合体类型变量。
union
{
成员列表;
}变量列表;
例如,有如下所示C程序代码段:
union test
{(www.chuimin.cn)
int a;
double b;
}key;
定义了一个联合体类型union test和一个该联合体类型的变量key。
与结构体类型变量处理类似,联合体变量不能直接进行操作处理,也只能通过操作它的成员达到操作它的目的。引用联合体变量成员的方式与引用结构体变量成员的方式相似,一般形式如下:
联合体类型变量名.成员名;特别值得注意的是:一个联合体类型变量不是同时存放多个成员的值,而只能完整地存放一个成员项的值,这个值就是该联合体变量最后一次赋值后所具有的内容。例如:有如下语句序列:
union test key;
key.a=100;
key.b=40000.123;
那么,联合体变量key中只有一个值,那就是key.b的值。
使用联合体变量时,由于存放入联合体变量中的值只可能是若干个成员值中的一个,所以一般情况下,对联合体变量都不会进行初始化。如果非要对联合体变量初始化,则注意只能对联合体变量的第一个成员分量进行初始化。请比较下面两个程序段:
只有在两个同类型的联合体类型变量之间才可以直接赋值。例如:
union test key,x;
key.a=100;
x=key;
上述操作后,x.a的值为100。
【例10.13】 在人事数据管理中,对“职级”数据项处理方式如下:如类别是工人则登记其“工资级别”;如类别是技术人员则登记其“职称”。
【例10.14】 联合体变量作为函数参数。
【例10.15】 用指向联合体变量的指针作为函数的参数。
有关C语言程序设计基础(第3版)的文章
图5.3指针变量指针变量本身也是变量,所以指针变量在使用之前也需要定义。为指针变量赋值的方法有两种:一种是定义后,使用赋值语句的方式;另外一种是定义的同时进行初始化方式。......
2023-11-20
还可以在枚举类型定义中对枚举元素起始值作多次改变,每次改变后枚举值从该处开始递增直到遇到下一次起始值的指定为止。枚举数据类型定义完成后,仍然需要定义枚举变量才能使用,常见的方法有:①先定义枚举类型,然后定义枚举变量。枚举变量的输入输出示例。......
2023-11-20
例如,对一维结构体数组的初始化就类似于普通二维数组的初始化,初始化中的注意事项也与二维普通数组初始化时相同或类似。同样也不能将结构体数组元素作为一个整体直接进行输入输出,也需要通过输入输出数组元素的每一个成员分量达到输入输出结构体数组元素的目的。对结构体数组元素操作的唯一例外是可以将结构体数组元素作为一个整体赋给同类型数组的另外一个元素,或赋给一个同类型的结构体变量。结构体数组操作示例。......
2023-11-20
在输出结构体数据时只能对结构体变量中的各个成员分别进行输入输出。引用结构体变量中的成员的方式为:结构体变量名.成员名例如,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
指针数组是一组有序的指针的集合。用一维指针数组处理二维数组示例。程序一次运行的结果为:11415019618955311556532879428指针数组还常用于处理若干个相关的一维数组,此时指针数组中的每个元素指向一个一维数组的首地址。上面程序综合使用了指针数组和二级指针变量,在数据对象的定义和初始化阶段完成后形成的处理结构如图8.9所示。......
2023-11-20
上面我们讨论了x→x0与x→∞时函数极限的定义及性质,其中自变量的变化过程x→x0是指自变量x沿x轴从x0的左、右两侧趋于x0,x→∞是指自变量x沿x轴左、右两侧离原点越来越远,趋于无穷远.但有时所讨论的极限中,其自变量的变化过程只须沿某一侧(左侧或右侧)变化,例如考察极限时,由于受函数的定义域限制,自变量在x→0的变化过程中,x只能从0的右侧趋近于0,该变化过程相当于在变化过程“x→0”中增加了......
2023-11-19
,常数n};例如:int a1[5]={1,2,3,4,5};一维数组的初始化可以用以下方法实现:①数组初始化时,给出全部数组元素的初始值。②输出数组元素值。......
2023-11-20
“struct结构体名”为结构体数据类型名字,使用结构体类型名才能在程序中定义结构体变量。③“数据类型名结构体成员i;”指定了结构体类型中的一个结构体成员,结构体成员必须像以前的变量定义一样进行说明,成员名的命名规则与变量名相同,要符合标识符的命名原则。④结构体类型定义语句是一条完整的C语句,所以结构体类型的声明要用“;”作为结束符。......
2023-11-20
相关推荐