C语言函数参数指针应用与文件操作

需积分: 22 2 下载量 163 浏览量 更新于2024-08-19 收藏 4.07MB PPT 举报
"C语言中的函数参数为指针和文件操作" 在C语言中,函数参数可以是各种数据类型,包括基本类型(如整型、浮点型)以及复杂类型(如结构体、指针等)。当函数参数为指针时,这种特性允许地址传递,即传递变量的内存地址而不是其值,从而实现共享内存和“双向”传递数据。这种传递方式对于交换两个变量的值非常有用,因为它允许函数内部修改实际参数的值,而这些变化会影响到调用函数时的原始变量。 例如,考虑一个简单的`swap`函数,它接受两个整数作为参数,通过指针交换它们的值: ```c void swap(int *x1, int *y1) { int temp; temp = *x1; *x1 = *y1; *y1 = temp; } ``` 在这个例子中,`x1`和`y1`不是实际的整数值,而是指向这些值的指针。当调用`swap`函数并传入变量的地址时,函数内部通过指针访问并修改了原始变量的值。在`main`函数中,如果调用`swap(&x, &y)`,`swap`函数就能改变`x`和`y`的值,而不仅仅是复制它们的值。 然而,值得注意的是,如果函数参数是值传递,例如在上面的示例中没有使用指针,那么`swap`函数内部的任何修改都不会影响到原始变量。这就是为什么在描述中提到的示例中,使用普通参数(非指针)交换`x`和`y`的值并没有成功。 此外,C语言也提供了丰富的文件操作接口,其中`fopen`函数用于打开文件。这个函数接收两个参数:文件名和文件模式。文件模式可以是"r"(读取)、"w"(写入,会覆盖已有内容)或"a"(追加)等。例如: ```c // 打开当前目录下的"aa.txt"文件进行读取 FILE *fp = fopen("aa.txt", "r"); ``` 如果文件不在当前目录下,需要提供完整的路径: ```c // 打开"D:\fengyi\bkc\aa.txt"文件进行读取 FILE *fp = fopen("d:\\fengyi\\bkc\\aa.txt", "r"); ``` 从键盘输入文件路径时,可以使用字符数组存储路径,并将其传递给`fopen`: ```c char infile[30]; printf("请输入文件路径: "); fgets(infile, sizeof(infile), stdin); fp = fopen(infile, "r"); ``` 在文件操作中,`fclose`函数用于关闭文件。它不仅释放文件指针,还会确保缓冲区中的数据被正确地写入到磁盘文件。在处理文件时,确保正确使用`fclose`以防止数据丢失是非常重要的。 C语言通过指针参数和文件操作功能提供了灵活的数据交互和文件处理能力。理解这些概念对于编写有效的C程序至关重要。