1.函数的定义:返回值类型 函数名 (形式列表) {函数体 //有返回值的时候需要用return 将数据返回,每个参数用逗号隔开
2.函数:是具有特定功能的代码段。
3.函数的好处 : 使代码更简洁 复用性比较强 可移植性 可修复性 安全性
4.函数分为两种:第一种是库函数,就是系统提供的函数,我们可以直接拿来使用;第二种:由于系统提供库函数是有限的,不能满足开发的需要,开发者需要自己定义一些函数,这种由开发者自己定义的函数,叫自定义函数。
5.函数的形式分为4种:
无返无参
无返有参
有返有参
有返无参
无返无参 void 空,表示函数没有返回值
void buyRedind( ){
printf("不给钱,买个毛啊!\n");
}
无返有参
void buyRedind2(int money){
printf("%d块钱,跑了\n",money)
}
3.有返无参
int buyRedind3(){
printf("祥哥买什么酒?\n");
printf("82年拉菲!\n");
printf("草,真吭!\n");
int buyRedind3(){
printf("祥哥买什么酒?\n");
printf("82年拉菲!\n");
printf("草,真吭!\n");
//娶媳妇,getMarry(前提是未婚先孕)
int getMarry(){
printf("你女孩肚子里有我的东西\n");
printf("请输入几个东西:");
int n =0;
scanf("%d",&n);
switch (n) {
case 0:
return 1;
break;
case 1:
return 2;
break;
case 2:
return 3;
break;
default:
return 1;
break;
}
}
int getMarry(){
printf("你女孩肚子里有我的东西\n");
printf("请输入几个东西:");
int n =0;
scanf("%d",&n);
switch (n) {
case 0:
return 1;
break;
case 1:
return 2;
break;
case 2:
return 3;
break;
default:
return 1;
break;
}
}
4.
有返有参
int buyRedind4(int money){
printf("想哥,你要买什么就,给多少钱\n");
printf("买瓶雪碧就可以了,给你%d块钱\n",money);
return 1;
}
//练习取钱drawMoney
int drawMoney(int money){
printf("帮朋友取钱,取了%d元\n",money);
return money;
}
printf("想哥,你要买什么就,给多少钱\n");
printf("买瓶雪碧就可以了,给你%d块钱\n",money);
return 1;
}
//练习取钱drawMoney
int drawMoney(int money){
printf("帮朋友取钱,取了%d元\n",money);
return money;
}
*/
6.交换两个变量值的函数
void swap(int a,int b){
printf("a = %d b=%d\n",a,b);
int temp = a;
a =b;
b =temp;
printf("a = %d b=%d\n",a,b);
printf("a = %d b=%d\n",a,b);
int temp = a;
a =b;
b =temp;
printf("a = %d b=%d\n",a,b);
}
7.数组名 作为函数的参数,其实传进来得在内存的地址,只有拿到数据在子内存中的地址,才能在函数中修复它的值
8.
定义函数
void PrintXiang(int m){
if (m <= 0) {
printf("
晚上去如家
402
,大战三百回合
\n");
return;//return
在无返回值的函数中可以提前结束函数,这是return后如果有其他语句,永远都不会执行
printf("
晚上去如家
402
,大战三百回合
\n");
}
for (int i = 0; i<m; i++) {
printf("
祥哥是帅哥
!");
}
return;
printf("niganshanglaima \n");
}
函数的声明,告诉下面其他所有的函数我这里有一个函数,你们可以使用
函数的声明:只需要写名函数的返回类型+函数名(参数列表);
9.void showNumber(){//在函数内部定义的变量就叫做局部变量,有效范围之在定义的那行起得函数体内
int a = 10;
}
}
10.int
c = 10;//定义在函数外部的变量叫做全局变量,有效范围自定义的那行起,后面任何函数都有可以使用;
11. ****在函数内可以定义和全局变量同名的局部变量,只不过在使用这个变量的时候会把全局变量值给屏蔽掉,虽然全局变量看起来很好用,但是不安全,因为所有的函数都可以修改全局变量的值,建议以后大家不要使用全局变量
12. 返回值是什么类型的,就用什么类型的接受
13 .函数调用的时候会发生跳转,程序会跳转到被调函数中执行,执行完在回到主调函数
14. 定义函数的时候参数列表里的参数是形参
15.调用函数的时候传进来得参数是实参
16.带有参数的函数再被调用的时候,传进的实参,只是将实参里面的值拷贝了一份,赋值给形参,函数运行时真正修改的时形参,而没有引起实参的变化
17.形参的类型和个数,决定了实参的类型和个数
18.形参是什么类型,实参就是什么类型
19.形参有几个,实参对应也有几个
20. 全局变量和局部变量
函数的递归,递归非常吃内存,建议在以后的开发中尽力不使用递归
21.
****
#import
"Function.h"
//
引入头文件,头文件就是
.h
文件,引入系统的头文件使用的时
< >,
而引入我们开发者自己写的头文件使用的
” ";