C语言之指针专题三:理解指针要和内存四区模型和函数调用模型相结合



1)、理解指针要把内存四区模型和函数调用模型相结合

     前面已经讲述内存四区模型和函数调用模型、指针是为内存服务的,因此要深刻理解指针就要

     把指针和内存四区以及函数调用模型相结合理解。

2)、主调函数,被调函数

   1、 主调函数可把堆区、栈区、全局数据内存地址传给被调用函数
   2、被调用函数只能返回堆区、全局数据 

3)、主调、被调函数内存分配方式—-指针做函数参数输入输出特性

    1、主调用函数分配内存,被调用函数使用内存—输入特性

    2、被调用函数分配内存把结果输出给主调用(指针做函数参数和返回值做输出),

    一般情况下都是分配堆区内存,然后由主调用函数析构该内存,这里注意避免野指针的产生

总结:

在项目开发中,深刻理解指针做函数参数,在主调和被调函数间的输入输出是关键点。

关键点1:主调和被调是哪个分配内存?

         在C语言提供的库API函数中常见的字符串函数中通常能见到

         char *strcpy( char *to, const char *from );

         注意:const限定的函数参数一般是主调函数分配的内存,且该字符串做输入不能修改

               这也就是const在函数参数中出现的原因

               一般情况有经验的程序员写函数接口的时候如果是指针做“输入”会加/*in*/注释更清晰易懂

              char *strcpy( char *to/*in*/, const char *from/*in*/ );

关键点2:函数参数是输入还是输出,返回值是输出特性

   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值