C语言结构体变量初始化详解与历史背景

需积分: 10 2 下载量 89 浏览量 更新于2024-08-24 收藏 5.65MB PPT 举报
本资源是关于C语言谭浩强第三版PPT课件中关于结构体变量初始化的部分。在C语言中,结构体是一种自定义的数据类型,它能够组合不同类型的数据成员,以便于组织和管理复杂的数据。在处理结构体变量时,初始化是至关重要的。 在第11.4节中,结构体变量的初始化强调了不能直接使用`scanf`函数来整体读入结构体,因为这种做法可能不适用于结构体的复杂数据成员。例如,试图通过`scanf`一次性接收多个数据项(如整数、字符数组等)并分配给结构体变量是不允许的。正确的做法是分别初始化每个成员变量,如例11.1所示: ```c struct student { long int num; char name[20]; char sex; char addr[20]; } a = {10101, "LiLin", 'M', "123 Beijing Road"}; // 使用花括号{}对结构体变量进行初始化 ``` 在这里,`struct student a`被初始化为一个包含`num`、`name`、`sex`和`addr`这四个成员的结构体,它们各自被赋予特定的值。结构体变量`a`的地址在函数调用时作为参数传递,主要用于传递数据的引用,而不是将整个结构体值复制。 章节1介绍了C语言的历史背景,包括C语言的起源、发展过程以及与UNIX系统的关系。C语言最初是由D.M.Ritchie在B语言基础上设计的,以改进B语言的不足。B语言由于过于简单而缺乏数据类型,而C语言通过增加数据类型和优化语法,使得它更适合编写高效且可移植的代码。1975年随着UNIX第6版的发布,C语言的影响力逐渐扩大,随后的标准制定和推广进一步巩固了其地位。书中提到,不同版本的C语言编译器可能存在细微的差异,因此读者在学习时应熟悉所使用的具体编译器的特性和规则。 这部分内容深入讲解了如何在C语言中正确初始化结构体变量,并回顾了C语言的历史变迁,这对于理解和使用C语言编程至关重要。