欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > c语言 —— 结构变量

c语言 —— 结构变量

2024/12/1 0:32:11 来源:https://blog.csdn.net/2302_80782671/article/details/142305098  浏览:    关键词:c语言 —— 结构变量

1.结构变量的定义
        类型和变量是不同的概念,只能对变量进行赋值、存取或运算操作,而不能对一个类型进行这些操作。因此在声明了结构类型后,还需要定义结构变量,以便在程序中引用它。结构变量和其他变量一样,必须先定义后使用,定义方法有以下3种:

(1)先定义结构类型,再定义结构变量。如
 

struct books
{int bno;char bname[20],field[10],author[10],publisher[30];float price:
};
struct books bookl ,book2 ;

(2)定义结构类型的同时定义结构变量。如

struct books
{    int bno;char bname[20],field[10],author[10],publisher[30];float price ;
}bookl , book2 ;


(3)直接定义结构变量。如

struct
{    int bno;char bname[20],field[10],author[10],publisher[30];float price;
}bookl,book2;


        方式(3)中由于省去了结构名,在此定义语句后面无法再定义这个类型的其他结构变量,除非把定义过程再写一遍。另外,以后如果再声明成员完全相同的结构类型,也和此次定义的结构类型属于不同的结构类型。若在上面的结构类型后面有语句“struct book3;”,则是错误的。同样下面的定义也是错误的:

struct
{    int m;float n;
}aa;
struct aa bb;

2.结构变量的初始化
        同其他基本数据类型的变量一样,结构变量在定义的同时也可以进行初始化。结构变量初始化的一般形式是在定义变量的后面加上“=(初值表列);”,即在一对花括号中分别列出结构变量中各成员的初始值,各初始值之间用逗号隔开。

结构体初始化示例

#include<stdio.h>
int main( )
{   struct books /*结构类型*/{int bno;char bname[20],field[10],author[10],publisher[30];float price;
};
struct books bk1=(100l," c programming" ," computer" ," xuwei" ," renminyoudian press" , 39. 0};/*初始化*/printf( " bno =% d\ nbname =% s\ nfield =% s\ n", bkl. bno, bkl. bname,bk1. field);printf("author=%s\n" , bkl. author);printf("publisher= %s\nprice= %f\n" ,bkl.publisher,bkl. price);return 0;
}

下面讲解几个错误点

(1)对结构变量初始化时,需要按照其成员出现的顺序对每个成员依次赋值,不能跳过前面的成员给后面的成员赋值,例如下面的用法是错误的。

struct books bkl=(1002, ,"computer", ,"renminyoudian press" ,39. 0};


(2)不能在结构内部给成员赋初值,例如下面的用法是错误的。
 

struct books
{
int bno=1001;
char bname[20]="c programming" ;
char field[10]="computer" ;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com