C语言——函数后续

51 阅读3分钟

函数

  1. 定义。实现特定功能的代码段。

  2. 三个要素 (1) 功能。 干嘛用的? (2) 参数。 我需要给它提供什么? 形参:定义函数1的时候,()中的内容 实参: 调用函数的时候,()中的内容 (3) 返回值。它会给我什么? 不是所有的函数都有返回值 3.参数传递 (1)实参传递给形参 (2)参数要一一对应。类型,个数,顺序。

  3. return 用来设置函数的返回值。它后边接的这个值,就是函数的返回值。 要点:与定义函数时的类型约定保持一致!

    定义函数的格式:

    返回值类型|或者是void 函数名(形参){
    
        return 返回值
     
    }
    
# include<stdio.h>
/*
 函数
 1. 定义。实现特定功能的代码段。
 2. 三个要素
    (1) 功能。 干嘛用的?
	(2) 参数。 我需要给它提供什么?
	    形参:定义函数1的时候,()中的内容
		实参: 调用函数的时候,()中的内容
	(3) 返回值。它会给我什么?
	不是所有的函数都有返回值 
 3.参数传递
    (1)实参传递给形参
	(2)参数要一一对应。类型,个数,顺序。
	
 4. return 用来设置函数的返回值。它后边接的这个值,就是函数的返回值。 
	 要点:与定义函数时的类型约定保持一致!
	
	 定义函数的格式: 
	
	    返回值类型|或者是void 函数名(形参){
	  
	        return 返回值
		 
        }
*/

// void 这个关键字,就表明这个函数没有返回值。 
void printN(int n) {
	int rst = 0;
	for(int i = 1;i<=n;i++){
		rst += i;
	}
	printf("%d",rst);
}
	
// 写一个函数,用来把一个给定的参数放大10倍数 
	int times10(int n){
		return 10 * n;
		
	} 
  

int main09(){
    int rst = times10(5);
    printf("%d",rst);
	return 0;
}

运行结果如下:

image.png

# include<stdio.h>


// 写一个函数,功能: 计算两个整数中的较大者,并返回
//int getBigger(int a,int b){
//	return a > b ? a : b;
//}

//写一个函数用来求三个整数中的最大值,并返回!

int getBigger (int x,int y, int z){
	if(x>=y&&x>=z){
		return x;
	}else if(y>=x&&y>=z){
		return y;
	}else {
		return z;
	}
}





int main(){
	
	int rst = getBigger(10, 20, 30);
	printf("%d",rst);//20
}

运行结果如下:

image.png

return 的作用

  1. 设置函数的返回值。它后边的表达式的值就是当前函数的返回值。
  2. 结束后面代码的执行 函数运行到此为止,它后边的代码都不会执行!
# include<stdio.h>
//return 的作用
//1. 设置函数的返回值。它后边的表达式的值就是当前函数的返回值。
//2. 结束后面代码的执行 函数运行到此为止,它后边的代码都不会执行!

int f(){
	
	printf("a");
	printf("b");
	
	printf("c");
	return 10 + 3 - 90 * 200;
} 

int main()
{
	int rst = f();
	
	printf("%d",rst);
	
	return 0;
}

运行结果如下:

image.png

有4种调用方法(函数有三个要素: 功能,参数,返回值)

  1. 将函数作为表达式调用。
  2. 作为语句调用。
  3. 作为函数的实参调用。
# include<stdio.h>
//函数有三个要素: 功能,参数,返回值。

/*
有4种调用方法
1. 将函数作为表达式调用。
2.作为语句调用。
3.作为函数的实参调用。
	
*/ 

int getBig2(int a,int b){
	if(a>b){
		return a;
	}else{
		return b;
	}
} 

int getBig3(int x,int y,int z){
    // 大者1:求 x,y的较大者
	//求大者1 和 z 的较大者
	//int k = getBig2(x,y); //4.在一个函数中调用另一个函数
	// return getBig2(k,z);
	return getBig2(getBig2(x,y),z);
	 
}
int f32(int n){
	return n / 3+1;
} 

void printfOK(){
	printf("\n*************************************\n");
	printf("*************************************\n");
	printf("*************************************\n");
} 
int main(){
	
	printf("%d",getBig3(1,2,3));
	printfOK();
	
	int rst = f32(10) + 20; // 1.将函数作为表达式调用 
	printf("%d",rst);
	
	printfOK(); //2.作为语句调用 
	
	int rst1 = f32(f32(10)); // 3.作为函数的实参调用。
	
	printf("%d",rst1); // 
}

运行结果如下:

image.png