1.嵌套调用
函数与函数之间是可以根据实际需求进行组合的,可以互相调用,
函数之间的地位都是平等的,
函数之间可以嵌套调用,比如:
int mul(int x, int y)
{
return x * y;
}
int add(int x, int y)
{
return x + y;
}
int main()
{
return 0;
}
在这里mul可以调用add中的函数,反之亦然,main也可以调用mul和add
但是不能嵌套定义(这里指的是把一个函数的代码直接放入另一个函数中)
比如下面的,
int mul(int x, int y)
{
return x * y;
int add(int x, int y)
{
return x + y;
}
}
int main()
{
return 0;
}
2.链式访问
把一个函数的返回值作为另外一个函数的参数
比如,
int main()
{
printf("%d", printf("%d", printf("%d",43 )));
return 0;
}
//在这里打印的是4321,
//第一个printf打印的返回值是printf("%d", printf("%d",43 )),
//而第二个printf打印的返回值是printf("%d",43 )
//所以最开始打印的是最后一个printf,结果是43
//由于43是两个字符,所以第二个打印是返回值是2
//又因为2是一个字符,所以第一个打印的返回值是1
3.下面介绍几种不规范的写法
//函数不写返回值的时候,默认返回类型是int
//虽然这种写法也对,但是这种写法是不推荐的
mul(int x, int y)
{
return x * y;
}
int main()
{
int a = 32;
int b = 6;
int sum = mul(a, b);
printf("%d\n", sum);
return 0;
}
//下面的代码在有些编译器上可以执行
// 但是在返回的过程中
// 它仅仅执行函数的最后一条指令
int mul(int x, int y)
{
printf("hello!\n");
}
int main()
{
int a=4;
int b=6;
int sum = mul(a, b);
printf("%d\n", sum);
return 0;
}