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是栈上的内存,使用指针做函数参数,实现了在被动函数中可以修改主调函数中申请的栈上的内存,从而实现了接口的封装和设计。 |

相关推荐
cd118405113 分钟前
AutoCAD Electrical 2020学习笔记
笔记·学习
一叶落43814 分钟前
LeetCode 50. Pow(x, n)(快速幂详解 | C语言实现)
c语言·算法·leetcode
ADHD多动联盟31 分钟前
当孩子上课小动作多,如何有效改善学习困难?
学习·学习方法·玩游戏
Sarvartha1 小时前
递归、回溯与动态规划学习笔记
笔记·学习·动态规划
myloveasuka2 小时前
C++进阶:利用作用域解析运算符 :: 突破多态与变量隐藏
开发语言·c++
keep intensify2 小时前
康复训练 5
linux·c++
0 0 02 小时前
CCF-CSP 38-4 月票发行【C++】考点:动态规划DP+矩阵快速幂
c++·算法·动态规划·矩阵快速幂
OxyTheCrack2 小时前
【C++】详细拆解std::mutex的底层原理
linux·开发语言·c++·笔记
小光学长3 小时前
基于ssm的膳食健康管理系统e6whl4q7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·开发语言·数据库·学习·ssm
至为芯3 小时前
IP2075_34S至为芯支持C口快充的30W功率AC/DC芯片
c语言·开发语言