函数(function)
1.1函数定义
#include <stdio.h>
void/*返回类型*/ sum/*函数名*/(int begin, int end/*参数表*/)//函数头
{ //函数体
int i; //函数体
int sum = 0; //函数体
for (i = 0; i <= end; i++) //函数体
{ //函数体
sum += i; //函数体
} //函数体
printf("%d到%d的和是%d", begin, end, sum); //函数体
}
int main()
{
sum(1, 2);
sum(3, 3);
sum(1, 9);
return 0;
}
/*函数名(参数值)()起表示函数调用的重要作用,即使无参数也要()*/
1.2函数的返回值
int max(int a, int b)
{
int ret;
if (a > b) {
ret = a; //可以用return a; return b;替换但不符合程序单一出口原则
}
else {
ret = b;
}
return ret;/*停止函数执行并返回一个值*/
/*如果函数有返回值 则必须使用带值得return*/
}
int main()
{
int a, b, c;
a = 4;
b = 5;
c = max(15, 16);
c = max(a, b);/*返回值可以赋值*/
c = (c, (max(a, b)));/*返回值可以继续赋值函数*/
printf("%d", max(a, b));/*可以之间返回值输出*/
return 0;
}
1.3函数先后关系
void sum(int a, int b);//声明(整体为函数)
//1.3.1 函数原型
/*1.函数头,以“;”结尾构成函数原型
2.函数原型告诉编译器函数的构成(名称、参数、返回类型)
*/
1.4函数的调用——传值!
//1.如果函数有参数,调用函数时必须传递给它数量、类型正确的值
//2.可以传递的包括:字面量、变量、函数返回值、计算结果
//3.在调用时,只能传值给函数(每个函数有自己的变量空间,参数也独立与这个函数空间中)
/*eg:不能实现交换*/
#include<stdio.h>
void swap(int a, int b);
/*a,b为形参————参数*/
int main()
{
int a = 5, b = 6;
swap(a, b);/*调用时a,b为实参————值*/
printf("a=%d,b=%d\n", a, b);
return 0;
}
void swap(int a, int b)
{ /*a,b为形参——————参数*/
int swap;
int x, y, t;
t = x;
y = x;
y = t;
}
1.5本地变量(局部变量)
//1.定义:函数每次运行,就会产生一个独立的变量空间,
//在这个空间中的变量是函数本次运行所独有的,称为本地变量。
//2.定义在函数内部的变量以及参数都是本地变量
//3.变量的生存期:出现——消亡(进块生出块亡)
//4.变量的作用域:在程序什么范围内这个变量能起作用(块内)
//5.块外定义变量在块内有效,块内定义变量出块无效
//6.块内定义与块外同名变量会覆盖块外但不可在同一块定义同名变量
//1.6函数庶事儿——细节部分
//1.无参数时:void f(void)确定无参 but void f()代表参数未知
//2.逗号:在参数区分时是标点 but f(a,b)与f((a,b))不同
//3.C语言中不可嵌套定义函数
注:1.初学者如有遗漏或错误请大佬及时指出和补充
2.第一次写CSDN博客,请大佬提出建议或教学
3.日后会继续在这篇文章补充C#函数相关知识
4.愿意结识更多初学者一起努力