一、变量的设置
1.在循环中定义的变量
在循环中定义的变量,当循环结束以后,这个变量将会消失
如果是在循环之外定义的变量,那么如果循环会对这个变量储存的值做出改变,那么循环完成之后,这个值也确实会改变,符合循环的改变规则。
2.在函数体中定义的变量(局部变量)
在函数体中定义的变量,只在当前的函数体中起作用,不会对其他的函数体产生影响,即使不同函数体中的变量发生同名现象,那么他们代表的也是不同的变量。
3.形式参数
也叫局部变量,我们在定义函数内容的过程中会用到形式参数,这个形式参数的名称与其他函数体中的变量重了也没关系,甚至,我们在声明函数时候使用的形式参数和定义函数内容时使用的形式参数不一样也没关系。
二、函数的使用过程
1.对于C标准库中的函数或者固定常量
(也叫宏,就是#define预指令生成的),我们通过#include预指令来引用相应的头文件即可使用。
2.对于C标准库中没有的宏
我们可以使用#define预指令进行声明。
3.对于C标准库中没有的函数
(也就是我们要自定义的函数),我们可以通过三步走。
1.声明函数原型
一个函数由三部分构成,第一部分: 这个函数的名称。第二部分:这个函数是否有返回值,以及返回值是什么类型。第三部分:这个函数是否接受参数的传递,以及参数的类型。
例如:声明一个名称为showmoney的函数
无返回值,不接受参数传递:void showmoney (void);//注意,声明结束后要有分号结束。
int型返回值,接受一个int型参数和两个double型参数:
int showmoney (int, double, double);
2.定义函数内容
如果是在一个文件夹中,定义的函数内容需要放在主函数体的下面。
例:
//定义一个函数内容,假定这个函数和主函数在同一个文件中
int showmoney(int a, double b, double c)//注意,声明函数原型的时候,可以不写形参,但是在这里,必须要写形参
{
int x;
printf("这是一个定义函数\n");
printf("money是:%f\n",b+c);
printf("整数是:%d\n",a);
x=a+(int)b+(int)c;
return x;
} //如果无返回值,那么最后直接写一个return;即可。
这个函数的返回值是整型x,并且x的值会储存在showmoney()这个函数中
return的两个作用
1.传递返回值,return后面的返回值可以是变量,可以是常量,也可以是表达式,如果返回值的类型和定义的不符,那么会进行数据类型的升降级,使之与定义的数据类型相同。
2.结束当前函数,非主函数中的return表示结束这个函数并把控制返回到主函数,主函数将读取下一条语句。
主函数中的return表示主函数结束,也就是程序结束。
3.在主函数或者其他函数中调用
2中的函数,其中a,b,c是形式参数(形参),在调用过程中,要在括号中放入实参,这个实参会带入形参的位置进行操作。
三、几点说明
1.模块化
要养成模块化构建程序的思维,把主函数和其他函数分隔开。
2.多源文件编写
要养成多源文件的编写,即把不同的函数放到不同的文件中,在使用编译器进行统一调度。