学习总结

本周学习了:

将数据输出到文本文件

从文本文件中读入数据

模块化程序设计

自定义函数

函数的返回值

函数的参数

参数传递方式:传值与传地址

返回指针函数

将数据输出文本文件

实用写文件方式之一:格式化输出     fprintf(文件指针,格式化字符,输出表列)

实用读文件方式之一:格式化输入      fscanf(文件指针,格式化字符,输入表列)

实用写文件方式之一:把字符写入文件

函数原型:int    fputc(int ch, FILE *fp);      把字符ch写到fp指向的磁盘文件上去

实用读文件方式之一:从文件中读取字符

函数原型:int    fgetc(FILE *fp);

注意:当将字符写入文件,键盘输入想要结束时用CTRL-Z结束

从文本文件中读入数据

编程序实现文本文件的复制

遇到的问题:程序运行前,新建成功的一个source.txt文件,却在执行的时候提示“source.txt cannnot open"

模块化程序设计:将一个大程序划分成若干个程序模块,每个模块实现一定的功能,以便分工,降低开发难度

程序调试时,在小范围内查错并改正

自定义函数:


在写程序的时候发现把以前写过的程序用自定义函数写,结构会更加清晰

用函数的参数,处理也会更加灵活

函数的返回值

得出的结论:

无返回值函数,返回值为void类型,只完成某些操作。有返回值函数,返回值为int,double,或者其他,还要计算出一个值

返回的意义:执行流程的返回:由被调用函数返回到主调函数

                     执行结果的返回:将被调用函数执行的结果带回主调函数

函数的参数

形式参数和实际参数

形参和实参的存储空间:

定义函数时指定形参,但不分配存储单元

函数调用时才为形参分配内存单元

调用结束后,形参所占的内存单元也被释放

实参单元与形参单元是不同的单元。函数调用时,形参值的改变,并不会改变主调函数中实参的值

参数传递方式:传值与传地址

函数调用时,实参向形参进行值传递

交换x y的值

问题:通过这个程序发现x,y的值并没有交换成功!

无法完成交换任务的两种情况:只改变了形式参数的值。函数调用结束,形参空间释放,实参依然没有改变

改变了形式参数的值,没有改变形参指向的存储单元的值

正确做法:实参向形参传递存储单元的地址,改变形参指向的单元的值。

指针作为函数参数,传地址值

当在函数中修改形式参数指向的值时,也就是实际参数地址存储的值

使用指针函数作函数参数,可以得到多个变化了的值

返回指针函数

(类型标识符:*函数名(形式参数表列)

不能对未赋值的指针变量作"指向"运算

不能用整数为一个指针变量赋值

返回值不可以是已经失效的地址

原文地址:https://www.cnblogs.com/Abreast-/p/7672578.html