您的位置:首页 > 编程语言 > C语言/C++

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

2017-10-08 23:32 387 查看


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:函数参数是输入还是输出,返回值是输出特性


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐