1.函数的定义
- 有参数有返回值
返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
函数体
return 0;
}
🌰:
int getMax(int number1, int number2)
{
return number1 > number2 ? number1 : number2;
}
- 无参无返回值函数
void 函数名()
{
函数体
}
🌰 :
void sayHello()
{
printf("sj hello");
}
- 无参有返回值函数
返回值类型 函数名()
{
函数体
}
🌰 :
int getAge()
{
return 30;
}
- 有参无返回值函数
void 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
函数体
}
🌰 :
void prtLines(int n)
{
for (int i=0; i<n; i++) {
printf("------");
}
}
注意: 函数不能嵌套定义
2.形参实参注意点
函数如果没有写返回值类型,默认是int
- 调用函数时传递的实参个数必须和函数的形参个数必须保持一致
int max(int number1, int number2) // 形式参数
{
return number1 > number2 ? number1 : number2;
}
int main()
{
max(88); // 报错
return 0;
}
- 当使用基本数据类型(char、int、float等)作为实参时,实参和形参之间只是值传递,修改形参的值并不影响到实参
void change(int number1, int number2) // 形式参数
{
number1 = 250; // 不会影响实参
number2 = 222;
}
int main()
{
int a = 88;
int b = 99;
change(a, b);
printf("a = %d, b = %d", a, b);
return 0;
}
输出结果: 88, 99
- 形参实参类型不一致, 会自动转换为形参类型
void change(double number1, double number2) // 形式参数
{
printf("number1 = %f, number2 = %f", number1, number2);
}
int main()
{
change(10, 20);
return 0;
}
输出结果: 10.000000, 20.000000
- 函数返回值的类型和return实际返回的值类型应保持一致。如果两者不一致,则以返回值类型为准,自动进行类型转换
float height()
{
return 175;
}
int main()
{
printf("%d", height());
}
输出结果: 175.000000
网友评论