C语言之函数篇
来源:互联网 发布:360 禁止程序访问网络 编辑:程序博客网 时间:2024/06/18 20:13
为什么要使用函数?第一,函数的使用可以省去重复代码的编写。如果程序中需要多次使用某种特定的功能,那么只需编写一个合适的函数即可。第二,即使某种功能在程序中只使用一次,将其以函数的形式实现也是有必要的,因为这使程序更加模块化,从而有利于程序的阅读、修改和完善。
可以把函数看作“黑盒子”,即对一定的输入会产生特定的结果或返回某个数值,而黑盒子的内部行为并不需要考虑,除非是该函数的编写者(相对于函数的使用者)。例如,使用printf()函数时,只需向其传递一个控制字符串,或许还有其他一些参数,然后就可以预测到printf()的执行结果,而无需了解printf()的内部代码。以这种方式看待函数有助于把精力投入到程序整体设计而不是其实现细节。因此,编写函数代码之前首先需要考虑的是函数的功能以及函数和程序整体上的关系。
带有参数的函数
假设有如下函数原型:
void my_func(int n);
上述函数原型表明my_func()接受一个int类型的参数。声明一个参数就创建了一个被称为形式参数的变量。本例中,形式参数是叫做n的int类型变量。像my_func(10)这样的函数调用会把10赋给n。称函数调用传递一个值,这个值被称为实际参数。因此,函数调用my_func(10)把实际参数10传递给函数,然后函数把10赋给形式参数n。
函数中的变量名字是局部的。这意味着在一个函数里定义的名字不会与其他地方相同的名字发生冲突。
如同函数内部定义的变量一样,形式参量是局部变量,它们是函数所私有的。
函数原型中可以省略变量名。在原型中使用变量名并没有实际地创建变量。
#include <stdio.h>
int main(void)
{
const float MIN = 0.0f;
const float MAX = 100.0f;
float score;
float total = 0.0f;
int n = 0;
float min = MAX;
float max = MIN;
printf("Enter the first score (q to quit): ");
while (scanf("%f", &score) == 1)
{
// 筛选无效的分数
if (score < MIN || score > MAX)
{
printf("%0.1f is an invalid value. Try again: ", score);
continue; // continue语句导致程序跳过循环其余的用于处理有效输入的部分
}
printf("Accepting %0.1f:\n", score);
min = (score < min) ? score: min;
max = (score > max) ? score: max;
total += score;
n++;
printf("Enter next score (q to quit): ");
}
if (n > 0)
{
printf("Average of %d scores is %0.1f.\n", n, total / n);
printf("Low = %0.1f, high = %0.1f\n", min, max);
}
else
printf("No valid scores were entered.\n");
return 0;
}
- C语言之函数篇
- C语言之函数
- C语言之函数
- C语言之函数
- c语言之 函数
- C语言之函数
- C语言之:函数
- c语言学习之函数篇
- C语言之main()函数
- C语言之memcpy()函数
- C语言学习之函数
- C语言之strcpy函数
- C语言之strcat函数
- C语言之strlen函数
- C语言之strcmp函数
- C语言之strchr函数
- C语言之strrchr函数
- C语言之strstr函数
- visual studio Code 快捷键
- 快速排序
- 李白打酒(包含路径)
- Python数据结构
- ACL组委会手把手教你论文投稿小技巧
- C语言之函数篇
- Jquery之动态操作table
- 机器学习-代价函数
- hdu--6060--RXD and dividing
- 系统调用
- 函数逆序字符串
- 周末加班
- MS UI Automation简介
- 两种方法解决 "The License CNEKJPQZEX- has been cancelled..." 问题