马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
定义了结构体格式后,就可以声明这种类型的变量了。结构体变量的声明类似于其他数据类型变量的声明。结构体变量的声明包括以下部分: (1)
关键词struct。 (2)
结构体标记符 (3)
由逗号分隔开的变量名列表。 (4)
终止分号。 例如,语句structbook_bank,book1,book2,book3; 就是将book1,book2和book3声明为struct_book类型的变量。 每个变量具有由模板指定的4个成员。完整的声明如下所示: struct book_bank { chartitle[20]; charauthor[15]; intpages; floatprice; } struct book_bank,book1,book2,book3; 记住,结构体的成员本身不是变量,它们不占用任何存储空间,除非它们与诸如book1之类的结构体变量相关联。当编译器遇到声明语句时,将为结构变量保留存储空间。也可以将结构体定义与变量声明组合在一条语句之中。 声明语句: struct book_bank { chartitle[20]; charauthor[15]; intpages; floatprice; }book1,book2,book3; 将book1.book2和book3声明为表示3本书的结构体变量,没有包含标记符名。但是并不推荐使用这种方法,原因有两条: (1)
由于没有标记符名,就不能再用它来声明其他变量了。 (2)
通常,结构体定义是出现在程序文件的开头,位于所有变量或函数定义之前。也可以出现在main和诸如#define之类的宏定义之前。在这些情况下,结构体定义时全局的,可以被其他函数使用。 定义结构体类型 也可以使用关键词typedef来定义结构体。例如: typedef struct { ...... typemember1; typemember2; ...... }type_name; type_name表示相关的结构体定义。因此,就可以用它来如下声明变量了: type_name variable1,variable2,...... 记住,(a)type_name是类型名,不是变量名;(b)不能用typedef声明来定义变量。 访问结构体成员 它们必须与结构体变量相链接,以便使用它们的成员。例如,title没有明确的定义,而“titleof books”则有。成员与变量之间的链接可以使用成员运算符‘.’来建立,该运算符又称为“点运算符”或“句运算符”。例如: book1.price 是表示book1的定义的变量,它可以像其他普通的变量一样处理。下面来看看如何为book1的成员赋值: strcpy(book1.title,"BASIC"); strcpy(book1.author,"Balagurusamy"); book1.pages=250; book1.price=120.50 也可以使用scanf从键盘赋值,下面是合法的输入语句: scanf("%s\n",book1.title); scanf("%d\n",&book1.pages); 请定义一个结构体类型structpersonal,可包含人名、参加工作日期以及工资。请编写一个程序,从键盘读取每个人的这些信息,并将这些信息显示在屏幕上。 struct personal { charname[20]; intday; charmonth[10]; intyear; floatsalary; } main() { structpersonal person; printf("InputValues\n"); scanf("%s%d %s %d %f", person.name, &person.day, person.month, &person.year, &person.salary); printf("%s%d %s %d %f\n") person.name, person.day, person.month, person.year, person.salary); } 凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com。 |