C语言结构体指针操作与文件打开方式

需积分: 22 2 下载量 18 浏览量 更新于2024-08-19 收藏 4.07MB PPT 举报
"C语言结构体指针用于访问结构体成员及文件操作基础知识" 在C语言中,结构体(struct)是一种复合数据类型,允许我们组合不同类型的数据在一个单一的结构里。在给定的示例中,`struct student`定义了一个包含学号(num)、姓名(name)和性别的学生结构体。接下来,我们创建了一个`student`类型的数组`st`,并初始化了三个学生的数据。 关键知识点: 1. **结构体指针**:在C语言中,我们可以使用指针来访问结构体的成员。在`main`函数中,`struct student *p`定义了一个指向`student`类型的指针`p`。通过`p=&st[0];`,我们让`p`指向`st`数组的第一个元素,即`st[0]`。使用`p->num`,`(*p).name`和`st[i].sex`都是访问结构体成员的方法,其中`p->num`等价于`(*p).num`,它们都表示通过指针`p`访问`num`成员。 2. **结构体数组遍历**:在`for`循环中,`i`从0递增到2,`p++`使指针`p`每次迭代后指向下一个`student`结构体元素。这样,循环内部的`printf`函数就可以依次打印出每个学生的信息。 3. **文件操作**:文件操作在C语言中通常涉及`fopen`函数来打开文件,`fclose`函数来关闭文件,以及`fprintf`和`fscanf`等函数进行数据的读写。例如,`fp=fopen("aa.txt","r");`尝试以只读模式打开名为"aa.txt"的文件,`fp`是文件指针,如果文件打开成功,`fopen`会返回一个非空指针。 4. **文件路径**:文件路径的指定可以是相对路径或绝对路径。相对路径(如"aa.txt")基于当前工作目录,而绝对路径(如"d:\\fengyi\\bkc\\aa.txt")则是完整的文件位置。 5. **用户输入文件名**:在实际应用中,我们可能需要从用户那里获取文件名。例如,`char infile[30];`可以用来存储用户输入的文件路径,`f("%s", infile);`则可以读取用户输入。 6. **文件模式**:"r"表示读取模式,"w"表示写入模式,"a"表示追加模式。当以写入或追加模式打开文件时,C语言会将ASCII码数据转换为二进制形式存储;反之,读取时会将二进制数据转换回ASCII码。 7. **文件关闭**:在完成文件操作后,记得调用`fclose(fp)`来关闭文件。`fclose`会先将缓冲区中的数据写入文件,然后释放文件指针,确保数据的安全保存。 这些基本的C语言编程技巧对于理解和编写涉及结构体和文件操作的程序至关重要。在实际开发中,还需要考虑错误处理、内存管理和效率优化等问题。