20. 函数的嵌套调用和链式访问

接上一个笔记)写一个函数,每调用一次这个函数,就会将num值增加1。

void Add(int* pa)
{
    (*pa)++;  //这里为啥要加上括号?
}
int main()
{
    int num = 0;
    Add(&num);
    printf("%d\n", num);

    Add(&num);
    printf("%d\n", num);

    Add(&num);
    printf("%d\n", num);
    return 0;
}

这里需要将num值改变,所以要传指针。

函数的嵌套调用和链式访问

(定义函数时不能嵌套定义)

函数的嵌套调用:

void test3()
{
    printf("hehe\n");
}
void test2()
{
    test3();
    return 0;
}
int main()
{
    test2();
    return 0;
}

如此的一串代码被称为函数的嵌套调用

指的是定义新函数时调用定义的另一个新函数,从而达到嵌套调用的作用。

函数的链式访问:

把一个函数的返回值作为另外一个函数的参数。

#include<string.h>
#include<stdio.h>
int main()
{
    int len = strlen("abcd");
    printf("%d\n", len);
    //链式访问
    printf("%d\n", strlen("abcd"));
    return 0;
}

在这里,strlen()函数的返回值作为了printf()函数的参数,这便是链式访问。

还可以再好玩点:


#include<stdio.h>
int main()
{
    
    printf("%d", printf("%d", printf("%d", 43)));
}

该代码打印出来的值应为4321

首先,先看最后一个printf(),输出43。由于printf()函数的返回值是打印在屏幕上字符的个数,所以最后一个printf()会返回2,以此类推打印2,返回值为1,最后再打印1.

函数的声明和定义

函数的定义就是创造一个函数,交代函数的功能实现

函数的声明则是告诉编译器即将调用的函数叫什么,参数是什么,返回类型是什么

函数的声明一般放在函数使用前。要先声明后使用。

由于编译器是自上而下进行编译的,所以当函数的定义先于函数的调用,则不会出现问题。

一般来说,函数的声明放在头文件中,当要使用时,则调用头文件。

右击项目名称,在属性中的配置类型中改为静态库可以将源文件加密成二进制,当需要使用时需加上如下代码:

#pragma comment(lib,"xxx.lib")

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值