函数:
1、函数的定义
2、形参、实参
3、函数的公式
4、无参无返回值 函数 函数的调用
5、无参有返回值 函数 函数的调用
6、带参无返回值 函数 函数的调用
7、带参有返回值 函数 函数的调用
8、变量的作用域I
1、函数的定义:具备某些功能的代码块,有自己的名字,有自己的功能。**函数可以称为方法。
只要有函数(方法),可以在任何地方(其他的函数(方法))使用。
好处:优化精简代码,模块化,提高可阅读性,复用性强,可维护性强。
2、形参、实参
形参:形式参数,媒介
实参:实际参数,真正需要的内容
(形参会把实参的值拷贝到这个函数里面)
3、函数的公式
有返回值(结构体 数据 基本数据类型...)
无返回值,用viod 空
(参数列表) 可以写任意多的参数,每一个参数用逗号隔开
返回数据类型 函数名(参数列表){
功能代码
}
一定要在调用函数上面(为了让编译器知道有这个函数)
4、无参无返回值 函数 函数的调用
公式:
void 函数名(){
功能代码
}
不需要得到结果,也不需要提供给它任何东西
函数的调用:(无参无返回值)在需要这个函数的地方
函数名();即可使用
(有参):函数名(具体的值);
每一个函数都是独立的整体,不能写在另外一个函数体里面
void walk(){
printf("走\n");
}
6、带参无返回值 函数 函数的调用
参数:向外面函数要个东西,使用后调用可以变参数得不同结果。
void 函数名(参数列表){
功能代码
}
void walk(char *who){
printf("%s走\n",who);
}
who是形参
带参无返回值函数的调用:函数名(实参 具体的值);
无参数的函数,里面只能是固定的内容
有参数的函数,根据传入的参数内容去发生改变。
5、无参有返回值 函数 函数的调用
1、return:(1)跳出函数 (2)并且如果是有返回值的函数,还会携带一个具体的值(3)把返回的值交给调用的地方使用
注意:不要在跳出函数的后面(return)写功能代码,没任何意义,不会去执行,因为已经跳出。
2、返回值:(1)return携带的值就是返回值(2)是一个具体的值是一个有实际值的变量(3)
有返回值无参函数公式:
返回值类型 函数名(){
功能代码
return与返回值类型相同的参数;
}
有返回值有参数的函数公式,会跟调用的地方一样,要一些参数,加工完毕之后给调用的地方一个结果
返回值char*代表message()它的数据类型;
eg:char*message(){
char*c="今天光棍节!";
return c;
} 有返回值函数在使用的时候,它等价于它的返回值,即(eg:中)怎么去使用c就怎么去使用message()函数。
使用条件:只需要一个计算的结果无需要指定条件
目的:给调用函数的地方一个结果(给别人一个东西)不跟外部函数要参数只提供给调用函数一个具体值
调用:函数名();调用的时候这个函数就是一个具体的值
char*chouJiang(){
char*prizes[4]={"iPhone7","iPhone6s","iPhone6p","谢谢惠顾"};
int rand=arc4random()%4;
return prizes[rand];
}
typedef struct Bag{
char *color;
char *name;
int price;
}Bag;
Bag chooseBag(Bag list[3]){
int rand = arc4random()%3;
return list[rand];
}
int main(int argc, const char * argv[]) {
char*m=message();
printf("%s\n",m);
printf("恭喜您抽到了%s\n",chouJiang());
Bag lv = {"暖红色","LV包",99};
Bag xiaoShuBao;
xiaoShuBao.price = 38;
xiaoShuBao.name = "葫芦娃包";
xiaoShuBao.color = "蓝色";
Bag lvXingBao = {"迷彩色","骆驼包",600};
Bag list[3] = {lv,xiaoShuBao,lvXingBao};
Bag result = chooseBag(list);
printf("恭喜 您抽到了 一个价值%d钱 %s颜色 的%s\n",result.price,result.color,result.name);
return 0;
}
输入季节编号,进入某个季节的方法
void loginSeason(){
printf("请选择想穿越的季节:1、春天\n2、夏天\n3、秋天\n4、冬天\n");
char *seasons[4] = {"春天","夏天","秋天","冬天"};
int num = 0;
scanf("%d",&num);
printf("恭喜您已经进入%s",seasons[num-1]);
}
乘法口诀函数
void cfkj(){
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d ",j,i,i*j);
}
printf("\n”);
}
}
输入两个数字相加的函数
void he(){
int a,b;
printf("请输入两个数字,我帮你求和\n");
}
void flowers( char *flow[5]){
for (int i=0; i<5; i++) {
printf("让%s开花\n",flow[i]);
}
}
#include
int main(int argc, const char * argv[]) {
walk();
loginSeason();
cfkj();
he();
char *flow[5]={"水仙花" ,"月季花","牡丹花","菊花","百合花"};
flowers(flow);
char *f[5]={"水仙花" ,"月季花","牡丹花","菊花","百合花"};
flowers(f);
return 0;
}