0004.C/C++学习笔记4

0031 、指针的精华:间接赋值

|-------------------------------------------------------------------------------------------|
| 指针的精华:间接赋值,C语言特有的现象。 |
| 通过指针做函数参数,通过间接赋值的方式,将一个函数中的运算结果甩出来。在主调函数中定义变量,在被调函数中通过*p来修改这个变量。通过这个方法,可以做模块的划分,接口的封装设计。 |
| 函数调用时,用实参取地址,传给形参,在被调用函数里面用*p,来改变实参,把运算结果传出来。 指针作为函数参数的精髓。 C语言特有的想象,是C语言的精华 |
| 指针做函数参数,间接赋值 ---->接口的封装设计----->模块的划分---->软件的分层 |

0032 、间接赋值

|-------------------------------------------------------------------------------------------------------------------------------------------|
| 间接赋值是指针存在的最大意义。 |
| 间接赋值的应用场景: 场景1:在一个函数内使用 场景2:在两个函数之间使用,即指针做函数参数 |
| 间接赋值成立的三个条件 条件1:定义1个变量(实参) //定义1个变量(形参) 条件2:建立关联,把实参取地址传给形参 条件3:形参去间接地的修改了实参的值 |
| 间接赋值条件应用深入分析:即 三个条件的组合,分别产生三种很重要的语法现象 条件123都写在一个函数里面,间接赋值应用场景1 条件12写在一个函数里面,条件3写在另外一个函数里面,间接赋值应用场景2 条件1 写在一个函数里面,条件23写在另外一个函数里面,间接赋值应用场景3 |

0033 、间接赋值应用场景 1 :在一个函数内使用

|----------------------------------------------------------------------------|
| 间接赋值应用场景1:在一个函数内使用 |
| |

0034 、间接赋值应用场景 2 :指针做函数参数

|--------------------------------------------------------------------------------------------------------------------|
| 间接赋值应用场景2:在两个函数之间使用,即指针做函数参数 |
| |
| 在函数调用的时候 用1级指针形参,去间接修改了0级指针(实参)的值。 用2级指针形参,去间接修改了1级指针(实参)的值。 用3级指针形参,去间接修改了2级指针(实参)的值。 用n级指针形参,去间接修改了n-1级指针(实参)的值。 |

0035 C/C++ 领域值得技术推演关键点

|----------------------------------------------------------------------------------------------------|
| C/C++领域值得技术推演的关键点: 1、*p,指针(一级指针、二级指针)做函数形参,间接赋值,即指针做输入输出 2、C++多态,多态的本质:函数指针做函数参数 1. 回调函数 2. AOP编程 |

0036 C 风格字符串

|----------------------------------------------------------------------------|
| C语言里面没有字符串这种类型,是通过字符数组来模拟字符串。 C风格字符串是以零结尾的字符串。 |
| |
| char buf4\[\] = "abcdefg"; // 默认自动的把\0追加到buf4中,让buf4变成以\0结尾的字符串。 |
| |
| printf函数默认按照C风格的字符串去打印以buf2的内存首地址开始的数据,直到碰到\0为止。 |
| |
| 注意:sizeof是对数组类型进行大小测量,包括了\0,strlen是返回字符串的长度,不包括\0 |

0037 \[\] * 的本质

|----------------------------------------------------------------------------|
| |

0038、一级指针的内存四区模型

|----------------------------------------------------------------------------|
| |
| strcpy函数:会自动补充\0 C语言可以在栈上存放字符串,可以在堆上存放字符串,可以在全局区存放字符串。 |

0039 return 返回值

|------------------------------------------------------|
| 1. 当return简单类型时,复制a作为返回值。 2. 在C++中,当return类时,需要详细考虑。 |

0040、两个指针指向同一块内存空间

|--------------------------------------------------------------------------------------------------------------------|
| |
| 当copy_str函数调用时,实参p和形参from指向同一块内存空间,实参p2和形参to指向同一块内存空间。p2是栈上的内存,使用指针做函数参数,实现了在被动函数中可以修改主调函数中申请的栈上的内存,从而实现了接口的封装和设计。 |

相关推荐
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK2 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境2 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境2 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴3 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境5 天前
C++ 的Eigen 库全解析
c++
卷无止境5 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端
郝学胜_神的一滴5 天前
CMake 27:缓存变量的特性、语法、类型与实操全解
c++·cmake
博客18007 天前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝
郝学胜_神的一滴7 天前
CMake 026:属性体系精讲、四大作用域全解 & 实战代码落地
c++·cmake