C语言基础(六)数组 指针 二级指针 数组指针 指针数组

目录 一、指针与数组(一)数组名(二)数组+/-运算1、数组地址2、加减运算 二、二维数组与指针(一)数组地址(二)加减运算 三、数组名传参(一)遍历二维数组 四、二级指针(一)定义1. 格式 (二)二级指针传参(三)多级指针 五、数组指针(一)概念(二)练习 六、指针数组(一)概念(二)练习(三)特殊的字符串定义方法 七、练习 一、指针与数组 (一)数组名 数组名是一个地址常量,不能进行++、–操...

【c++算法篇】双指针(下)

🔥个人主页:Quitecoder 🔥专栏:算法笔记仓 目录 `1.有效三角形的个数``2.查找总价格为目标值的两个商品``3.三数之和``4.四数之和`5.双指针常见场景总结 1.有效三角形的个数 这道题当然可以暴力求解,三层循环枚举所有情况,来进行判断,但是可以进行优化: 我们知道,三角形的满足条件是任意的两边之和大于第三边,,所以我们先进行排序,再进行枚举: class Solution {p...

C语言中的结构体和指针

目录 ​​​​​​​前言 1.指针 1.声明 2. 取地址运算符 3. 间接访问运算符 4. 指针的初始化 5. 指针的算术运算 6. 指针和数组 1. 数组名作为指针 2. 指针和数组的关系 3. 指针和数组的区别 4. 数组作为函数参数 7. 指针和函数 8. 指针和动态内存分配     1. malloc() 函数 2. free() 函数 2.结构体 1.定义 2.结构体成员访问      ...

【c++算法篇】双指针(上)

🔥个人主页:Quitecoder 🔥专栏:算法笔记仓 目录 `1.移动零``2.复写零``3.快乐数``4.盛水最多的容器` 1.移动零 这里运用的是数据分块的原理,我们将这个数组分为三个部分 两个指针的作用: cur:从左往右扫描数组,遍历数组dest:已处理的区间内,非零元素的最后一个位置 cur右边的部分是待处理的部分,左边是已经处理好的部分 处理好的区间,分为两个部分,左边为非零元素,右边全...

指向函数的指针

目录 typedef指向函数的指针 typedef typedef 在 C 语言中用于为类型创建别名,它使得程序员能够用新的名称来表示已有的类型,从而提高代码的可读性和可维护性。以下是 typedef 的几种常见用法: 1.创建类型别名 typedef unsigned int uint; 在这个例子中,uint 变成了 unsigned int 的别名。 2. 创建结构体类型的别名 typedef...

C/C++的指针、万能指针、常量指针指针常量

C/C++的指针 1、 指针的概念: 指针是一个变量,它存储的是另一个变量的内存地址,而不是变量的值。 指针变量的声明:在C/C++等语言中,我们通过使用星号*来声明一个指针变量。例如,int *ptr; 这行代码声明了一个名为ptr的指针变量,它指向一个整数类型的内存地址。 指针变量的赋值:我们需要将一个变量的地址赋值给指针变量。这可以通过使用取地址运算符&来实现。例如,int x = 10; p...

【算法专题--双指针算法】leecode-202. 快乐数(medium)、leecode-11. 盛最多水的容器(medium)

目录 前言1. 快乐数(medium)2. 解法3. 盛水最多的容器(medium)4. 解法解法一(暴力求解)(会超时):解法二(对撞指针): 前言 对撞指针从两端向中间移动。一个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼 近。对撞指针的终止条件一般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循 环),也就是: left == right (两个指针指向同一个位置) lef...

[C++11] 智能指针(auto_ptr(弃用)、unique_ptr、shared_ptr、weak_ptr)详细解读

说明:本文主要解释auto_ptr、unique_ptr、shared_ptr、weak_ptr这几种智能指针。接下来我们对每一个指针类型进行详细说明并给出一些基本的使用方式,重在深入理解。 在 C++ 中,auto_ptr、unique_ptr、shared_ptr 和 weak_ptr四种智能指针主要用于管理动态分配的对象的生命周期。它们在所有权管理和内存安全方面有所不同。 1 auto_ptr(...

突破编程_C++_C++11新特性(智能指针概述)

理是一个核心概念,它涉及到如何在程序执行过程中分配、使用和释放内存。由于 C++ 允许程序员直接管理内存,因此内存管理在 C++ 中显得尤为重要。合理的内存管理可以确保程序的正确运行,避免内存泄漏、野指针等问题,提高程序的稳定性和性能。 (1)内存分配 在 C++ 中,内存分配主要分为两种:静态内存分配和动态内存分配。 静态内存分配:在程序编译时就已经确定了所需内存的大小,并由编译器自动分配。这通常用...

js中复杂数据类型的引用与c++的指针是一回事吗?

在JavaScript中,复杂数据类型的引用和C++中的指针有一些相似之处,但并不完全相同。 在JavaScript中,复杂数据类型(如对象和数组)是通过引用来传递和操作的。当你将一个对象赋值给一个变量时,实际上是将对象的引用赋值给了变量。这意味着变量存储的是对象在内存中的地址,而不是对象本身的值。当你使用这个变量时,实际上是在操作这个对象。 类似地,在C++中,指针也可以用来存储对象的内存地址。通...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.007408(s)
2024-06-17 18:54:37 1718621677