P42函数
 
库函数

如何学习库函数 https://www.cplusplus.com/ https://zh.cppreference.com/
 
自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己设计的。

例子1:写一个函数返回两个整数中的较大值

#include <stdio.h>
int get_max(int x, int y);
int main()
{
int a, b, max;
scanf("%d %d", &a, &b);
max = get_max(a, b);
printf("这两个数的较大值为:%d", max);
return 0;
}
int get_max(int x, int y)
{
int result;
result = (x>y) ? x : y;
return result;
}
例子2:写一个函数交换两个整型变量的值
 
以上代码不能实现互换两个整型变量的值:原因是因为函数形参向实参的传递是单向的值传递,并不会带回去影响主函数里面的值 传值调用 实参传给形参,其实形参是实参的一份临时拷贝,改变形参,不能改变实参
 
#include <stdio.h>
void Swap(int *pa, int *pb);
int main()
{
int a = 10;
int b = 20;
printf("交换前:a=%d, b=%d\n", a, b);
Swap(&a, &b);
printf("交换后:a=%d, b=%d\n", a, b);
return 0;
}
void Swap(int *pa, int *pb)
{
int z = 0;
z = *pa;
*pa = *pb;
*pb = z;
}
以上代码可以实现互换两个正整型数值 传址调用
  
实参可以是变量,常量,表达式或函数等,只要能算出确定的值 

|