C语言笔试重点:结构体与函数参数

需积分: 22 1 下载量 151 浏览量 更新于2024-08-16 收藏 455KB PPT 举报
"这篇资源主要涉及的是计算机二级考试中的C语言知识,特别是关于结构体类型的变量作为函数参数的传值方式。题目展示了一个程序示例,该程序在调用函数时将结构体变量传递给函数,并在函数内部修改了结构体成员的值,但输出结果显示结构体的原始值未被改变。同时,提到了笔试考试的题型、内容以及一些重要的C语言概念,如表达式计算、switch语句、字符串处理、sizeof的使用、函数、指针、变量作用域、宏定义、typedef的使用、结构体、共用体、链表、文件以及带形参的main函数。" 在这段描述中,我们聚焦于"结构体类型的变量做函数形参传值"这一知识点。在C语言中,当结构体类型的变量作为函数参数时,实际上是按值传递的,这意味着函数接收的是结构体变量的一个副本,而不是其本身。因此,函数内部对结构体成员的修改不会影响到函数外部的原结构体。在提供的代码示例中,函数`f(A c)`接受一个名为`c`的A类型结构体作为参数,这个`c`是`main`函数中`a`的一个拷贝。在函数`f`内,虽然`c`的`b`和`p`成员被增加,但这些改动并未影响到`main`函数中的`a`。 题目中提到的程序运行后输出结果是`1,2`,这是因为`f(a)`的调用并不会改变`a`的原始值。在`f()`函数内的修改只影响局部副本`c`,不涉及`a`。所以,即使`c.b`和`c.p`被增加,`main`函数中的`a.b`和`a.p`仍保持其初始值`1`和`2`。 此外,摘要中还提及了其他C语言的基础知识点,例如表达式计算的短路逻辑,`switch`语句,字符串处理,`sizeof`运算符用于获取数据类型或变量的大小,函数的使用,指针操作,变量的作用域(这里涉及到结构体成员在函数内外的可见性),宏定义的使用,`typedef`关键字用于创建类型别名,结构体和共用体,链表数据结构,以及文件操作。这些都是C语言编程中非常关键的概念,对于准备计算机二级考试的考生来说,理解和掌握这些知识点至关重要。