1.函数定义!
函数是
具有特定功能的代码段。!
通俗来说:⼀连串语句组合在⼀起,实现了某⼀功能,我们为 它们起了⼀个名字。
自定义函数分为4种:
1.无参数无返回值
2.无参数有返回值
3.有参数无返回值
4.有参数有返回值
//无参数无返回值
//每个函数之间都是平级关系,不能在一个函数中定义另一个函数
void printhello()//函数头
{
//函数体
printf("ni hao world!");
}
//每个函数之间都是平级关系,不能在一个函数中定义另一个函数
void printhello()//函数头
{
//函数体
printf("ni hao world!");
}
//
有参数的
无返回值
void printNumber(int n)
{
for (int i = 0; i <= n ; i ++) {
{
for (int i = 0; i <= n ; i ++) {
printf("i = %d \n", i);
}
}
void printASCII(char c)
{
printf("%c 的ASCII码是%d", c, c);
void printASCII(char c)
{
printf("%c 的ASCII码是%d", c, c);
}
void printApproximateNumber(int n)//n是形参
{
printf("%d的约数有:", n);
for (int i = 1 ; i <= n ; i ++) {
if (n % i == 0) {
printf("%d\t", i);
}
}
}
//多个参数,形参列表使用,号隔开
void printFromNumberToNumber(int m , int n)
{
for (int i = m; i <= n; i ++) {
printf("i = %d\n", i);
}
{
printf("%d的约数有:", n);
for (int i = 1 ; i <= n ; i ++) {
if (n % i == 0) {
printf("%d\t", i);
}
}
}
//多个参数,形参列表使用,号隔开
void printFromNumberToNumber(int m , int n)
{
for (int i = m; i <= n; i ++) {
printf("i = %d\n", i);
}
}
//无参数有返回值
int studentCount()
{
return 66;
{
return 66;
}
//有返回值的函数,调用完之后会有一个结果
int result = studentCount();
int result = studentCount();
printf("result = %d", result);
//有参数有返回值
int sumValue(int a, int b)
{
int sum = a + b;
return sum;
int sumValue(int a, int b)
{
int sum = a + b;
return sum;
}
//return的作用
//1.在有返回值的函数里,返回函数结果,但是只能有一个返回值
//1.在有返回值的函数里,返回函数结果,但是只能有一个返回值
//2.
在没有返回值的函数里
,
用于提前结束函数调用
,return
之后的代码就不会执行到
2.函数调⽤!
3.函数声明!
//函数声明
int sumValue(int a, int b);
//函数定义
int sumValue(int a, int b)
{
int sum = a + b;
return sum;
int sumValue(int a, int b);
//函数定义
int sumValue(int a, int b)
{
int sum = a + b;
return sum;
}
4.数组作为参数!
5.函数嵌套!
//函数的嵌套调用的一种形式,由里向外依次调用
intsum =sumValue(sumValue(5,sumValue(12,20)),7);
printf("sum = %d",sum);
6.函数递归!
/ /实参传递给形参,是一个单项值拷贝的过程
/ /ary[ ]是形参,[ ]中不需要写元7素个数, 因为没有意义, 不知道最终调用的的时候传的数组究竟有几个元素
/ /每个函数之间都是平级关系,不能在一个函数中定义另外一个函数
//数组名是数组内存中首地址
/ / 实参传递给形参的是内存地址,通过地址修改的是同一块内存中的内容
//局部变量的作用域: 在离他最近的那对大括号中有效
//全局变量:在该文件中从定义的位置开始往下都