C语言之形参和实参
一 形参与实参
1).定义
形参:形式参数。
就是定义函数的时候,写在函数名小括号后面的参数叫形参
实参:实际参数。
就是调用函数的时候,调用函数时写在函数名小括号后面的参数就叫实参
2).注意项
a.实参既可以放常量,也可以放变量,还可以放表达式;形参:它其实可以理解为就是这个函数的局部变量
b.实参给形参传值,其实只是相当于给函数的形参(局部变量)赋值
c.值传递:在函数内改变了形参的值,不会影响到外面的实参
d.在C语言中,除了数组以外,所有的类型作为实参传递都是值传递
二 有参函数
带参数的函数定义语法:
void 函数名(类型 参数名){
函数体;
}
应用场景:当函数完成某个功能必须要外界传入一些数据的时候,就用参数
tips:代码例子如下
#include <stdio.h>
/*
* 判断一个数是不是水仙花数
*/
void isFlower(int num){
int bai = num / 100;
int shi = num / 10 % 10;
int ge = num % 10;
//如果 百*百*百 + 十*十*十 + 个*个*个 等于这个数
if( bai*bai*bai + shi*shi*shi + ge*ge*ge == num){
//就是水仙花数
printf("%d是水仙花数\n",num);
}else{
// 否则 不是水仙花数
printf("%d不是水仙花数\n",num);
}
}
//2、写一个函数,求指定某个数到某个数之间所有的整数的累加和
//如:3到8,算出3+4+5+6+7+8 = ?
void getN2MSum(int n,int m){
int sum = 0;
if(n < m){ //n比m小的情况
for (int i=n; i<=m; i++) {
sum += i;
}
}else{ //m比n小的情况
for (int i=m; i<=n; i++) {
sum += i;
}
}
printf("%d到%d之间的和为%d\n",n,m,sum);
}
// 3、用函数来实现判断一个年份是不是闰年
void isRunYear(int year){
if( year % 400 ==0 || (year%4==0 && year %100!=0) ){
printf("%d年是闰年\n",year);
}else{
printf("%d年是平年\n",year);
}
}
int main(int argc, const char * argv[]) {
//调用语法:函数名(实参列表);
isFlower(200);
getN2MSum(100,1);//10+11+12....+20
isRunYear(1900);
return 0;
}