day8函数笔记

函数

定义

当我们需要用到某种重复性较高的功能的时候,为了方便,我们可以将一直要编写的代码提取出来,写在一个{}中,这样的过程,一般就是函数。

在C语言中,定义一个函数的具体语法格式如下:

返回值类型 函数名([[参数类型 参数名1],[参数类型 参数名2],……,[参数类型 参数n]])
{ 
	执行语句
	……… 
	return 返回值;
}

函数的写法

需要函数声明的,一般函数的代码就写在main这个主函数的后面。

函数的代码直接写在main函数前面的,就不需要声明。

1.无类型(无返回值),无参数

#include <stdio.h>
void speak();//有函数声明,函数要写在main的下面.
int main() {
    speak();//调用函数.
    return 0;
}
void speak() {
	//函数体
	printf("你好啊!\n"); //可以在main函数中看到调用函数的效果
}

2.有类型(有返回值),无参数

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int R() {							 //无声明,直接写在main函数前面
	srand((unsigned int)time(NULL)); //调用随机数
	return rand() % 5;				//我们需要给一个随机值给下面的代码使用,就需要有一个整数类型的返回值
}
int main(){
    char name[5][5] = {1,2,3,4,5};
    printf("%s\n", name[R()]);//调用.
    
    return 0;
}

3.无类型(无返回值),有参数

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int R() {							 //无声明,直接写在main函数前面
	srand((unsigned int)time(NULL)); //调用随机数
	return rand() % 5;//产生一个随机的整数类型的返回值
}
void print;//声明
int main(){
    
    print(R());//调用了R函数的随机数,以及将它作为参数来使用print函数。
    return 0;
}
void print(int data){			//当有一个参数进来后,这个函数就会输出字符数组中的数据。
    char name[5][5] = {1,2,3,4,5};
    printf("%s\n", name[data]);
}

4.有类型(有返回值),有参数

#include <stdio.h>
int add(int x,int y){//这里的x,y就作为形参的形式存在。
    return x+y;		//会返回一个x+y的值。
}
int main(){
    int a,b;//这里的a,b就作为实参的形式存在
    scanf("%d+%d",&a,&b);
    printf("a+b=%d\n",add(a,b));
    
    return 0;
}

形参与实参

在定义有参函数时指定的参数x和y是形式参数,简称形参,它们只在形式上存在,并不是真正存在的参数。调用函数时传入的参数(如案例中的scanf里面的(a和b))是实际参数,简称实参,与形参相对,实参则是指实际存在的参数。

函数的返回类型与返回值

  • 1函数的返回值通过函数中的return获得,如果函数的返回值为void可以不需要return语句。

  • 2函数return语句中的返回值数据类型应该与函数定义时相同。

  • 3如果函数中没有return语句,那么函数将返回一个不确定的值。

exit函数与return语句

int test1(){	
    printf("111111\n"); 
    //return 0;
    //exit(0);
    //在子函数中调用exit同样代表程序终止,但在子函数中调用return只是子函数终止,程序正常执行
    printf("222222\n");
    //return 0;
    //exit(0);
}
    int main(){	
        test1();	
        printf("AAAAAA\n");	
        //exit(100);//exit是C语言的库函数,调用exit的结果就是程序终止	
    	//return 100;//在main函数中调用exit与调用return是一样的	
    	printf("CCCCCCC\n"); return 0;//main函数return代表程序终止	
    	printf("BBBBBB\n");
        //exit(100);
        //return 0;//可以尝试在不同位置调用。
}
posted @ 2020-10-28 20:14  onedust  阅读(99)  评论(0)    收藏  举报