帶默認參數的函數
內聯函數
#include<iostream>
using namespace std;
inline char max(char ch1,char ch2);
int main()
{
char ch;
ch=max('s','j');
cout<<"較大的字符是:"<<ch<<endl;
return 0;
}
inline char max(char ch1,char ch2)
{
return (ch1>ch2?ch1:ch2);
}
嵌套調用
int maxoftwo(int x, int y)
{
cout << "進入maxoftwo函數" << endl;
cout << "離開maxoftwo函數" << endl;
return (x > y ? x : y);
}
//求三個數中的最大數
int maxofthree(int x, int y, int z)
{
cout << "進入maxofthree函數" << endl;
int max1, max2;
max1 = maxoftwo(x, y);//max1爲x和y中的最大數
max2 = maxoftwo(max1, z);//max2爲x,y,z中的最大數
cout << "離開maxofthree函數" << endl;
return max2;
}
遞歸調用
#include<iostream>
using namespace std;
long f(int n);
int main()
{
cout << "=========開始main函數執行=========" << endl;
int a;
cout << "請輸入需要求階乘的整數:";
cin >> a;
cout << "數" << a << "!=" << f(a) << endl;
cout << "=========結束main函數執行=========" << endl;
return 0;
}
//求n!的函數f
long f(int n)
{
cout << "進入n=" << n << "時的f函數調用" << endl;
int m;
if (n == 1 || n == 0)
{
m = 1;
cout << "離開n=" << n << "時的f函數調用,返回到其上一級調用函數" << endl;
}
else
{
m = n * f(n - 1);
cout << "離開n=" << n << "時的f函數調用,返回到其上一級調用函數" << endl;
}
return m;
}