指针

2023-03-21-将指针所在地址传入函数来创建链表的一种写法

如下,通过将指针所在的地址传入函数中即**p的形式,来保证直接对地址进行运算,而不需要再返回一个链表 //双链表 #include <stdio.h> #include <stdbool.h> #include <malloc.h> typedef struct DNode { int data; ......
写法 指针 函数 所在 地址

【LBLD】双指针技巧秒杀七道数组题目

【LBLD】双指针技巧秒杀七道数组题目 快慢指针技巧 class Solution { public: int removeDuplicates(vector<int>& nums) { int fast = 0; int slow = 0; while (fast < nums.size()) { ......
数组 指针 题目 技巧 LBLD

2023-03-31-结构体指针传入函数的问题

错误示范,打印不出L->data的值,因为传入的是指针变量,更改数据的话,要把地址传进函数,才能把更改后的数据传出来: //单链表 #include <stdio.h> #include <stdbool.h> #include <malloc.h> typedef struct LNode { i ......
指针 函数 结构 问题 2023

结构体里面定义一个该结构体类型变量为什么必须用指针

一.错误: struct TreeNode { int val; TreeNode left; TreeNode right; }; 二.分析原因: 如果在定义class A时,A域的类型是未定义的class A而不是指向class A对象的指针类型,编译器会尝试在编译时分配一块内存给A域,但由于c ......
结构 指针 变量 类型

2023-03-30 野指针的问题

在顺序栈的取栈顶操作时,想利用指针来进行值的传输,最后却输出不出来 1 bool GetTop(SqStack S,int *e)//读栈顶元素 2 { 3 if(S->top 1) 4 { 5 return false; 6 } 7 else 8 { 9 *e=S->data[S->top]; 1 ......
指针 问题 2023 03 30

单元测试举例:ssm项目和springboot项目(解决空指针异常可参考)

springboot项目 1. 建议如图所示目录结构: 2. 启动类添加: 3. 测试类添加: 4. pom.xml: SSM项目 1. 建议目录结构同上 2. pom.xml: 3. 测试类添加:二选一 Java配置类 带有 自动扫描包 的xml配置文件 ......
项目 指针 springboot 单元 ssm

结构体嵌套链表实现——大学复健(终于会用指针的小蒟蒻)

##太开心了终于会用指针喏 ######前置内容: ######由于我太菜了甚至不知道这两个的区别所以写在这里 p->nex //p地址所指向的地方的东西 ,p为指针 p.nex //p这个结构体中的东西 , p为变量 ###那么关于这个东西怎么写呢,我们是会写数组模拟的所以的话 ###我们需要的无 ......
套链 指针 结构 大学

【LBLD】双指针技巧秒杀七道链表题目

【LBLD】双指针技巧秒杀七道链表题目 原文地址:双指针技巧秒杀七道链表题目 合并两个有序链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() ......
指针 题目 技巧 LBLD

C++11之智能指针weak_ptr

C++11标准虽然将 weak_ptr 定位为智能指针的一种,但该类型指针通常不单独使用(没有实际用处),只能和 shared_ptr 类型指针搭配使用。甚至于,我们可以将 weak_ptr 类型指针视为 shared_ptr 指针的一种辅助工具,借助 weak_ptr 类型指针, 我们可以获取 s ......
指针 weak_ptr 智能 weak ptr

指针

1、概念 每一个变量都有存储位置,而指针就是的值就是这个存储位置,或者说指针指向该存储位置 2、声明 int *p 声明一个指向整型数据的指针变量p,当只声明变量不给予赋值,系统会给一个默认的值 3、赋值 p = &a 这时指针便指向变量a,指针的值便是变量a的地址,指针值所在的地址存放的值便未变量 ......
指针

环形链表|哈希、快慢指针

环形链表 判断一个链表中是否有环,如果有返回环的起始位置。难点有两个,一是判断是否有环,二是找到起始点。这里有两种方法,一种是哈希集,另一种是快慢指针。 ==对应题目142. 环形链表 II==😶‍🌫️ 哈希集 从头开始遍历整个链表,并使用哈希集去保存每个节点,接着判断节点是否有重复的。如果有那 ......
快慢 环形 指针

删除链表的第N个节点|栈、双指针

删除链表的倒数第N个节点 类似于删除链表中的第N个节点,但是这里是倒数第N个且不知道链表的长度,如果用删除第N个节点的方法去解决问题的时候需要先知道链表的长度。这就需要遍历一遍链表,然后删除还需要再遍历一遍所以这会增大开销,但不失为一种方法。这里给出两种不需要知道链表长度的解题方法,使用栈和双指针法 ......
节点 指针

力扣-数组-双指针

1 class Solution(object): 2 def removeElement(self, nums, val): 3 """ 4 :type nums: List[int] 5 :type val: int 6 :rtype: int 7 """ 8 # 双指针法,left从前往后定位 ......
数组 指针

c++数组和指针

goto 作用:goto是跳转到循环中标志的地方。 标志语法:FLAG: 调用:goto FLAG; 数组 数组的定义方式 1.数组类型 数组名[数组长度]; 2.数组类型 数组名[数组长度]={值,值};//如果数组长度大于值的个数则多的值为零 3.数组类型 数组名[]={ 值 ,值};//可以不 ......
数组 指针

链表-双指针算法

快慢指针算法是一种常用的技巧,用于解决链表中的问题。通常用于链表的遍历、查找等问题 1. 算法的思想 快慢指针算法的思想是:两个指针以不同的速度遍历链表,从而达到目的。其中,快指针每次移动两个节点,而慢指针每次移动一个节点。 2. 常见应用场景 快慢指针的常见应用场景有:判断链表是否有环寻找链表的中 ......
指针 算法

C++黑马程序员——P56-62. 指针

P56. 指针——指针的定义和使用 P57. 指针——指针所占内存空间 P58. 指针——空指针 P59. 指针——野指针 P60. 指针——const修饰指针 P61. 指针——指针和数组 P62. 指针——指针和函数 P56. 指针的定义和使用 指针的作用:可以通过指针间接访问内存 指针定义语法 ......
指针 黑马 程序员 程序 56

C++智能指针、绑定器和函数对象、lambda表达式

智能指针 ​ 智能指针可以保证资源的自动释放 不带引用计数的智能指针 auto_ptr只让最后一个指向的指针管理资源,之前的auto_ptr会被置为nullptr scoped_ptr删除了拷贝构造和赋值重载函数 **unique_ptr:**推荐使用,也删除了拷贝构造和赋值重载函数,但是提高了右值 ......
表达式 指针 函数 对象 智能

C-指针

指针 每一个变量都有一个内存位置, 每一个内存位置都定义了可使用 & 运算符访问的地址, 它表示了在内存中的一个地址. 指针也就是内存地址, 指针变量是用来存放内存地址的变量. int a = 1; int * p = NULL; p = &a; printf("变量a的地址为: %p", p); ......
指针

【C++学习笔记】关于指针

指针与类型无关,指针只是一个长度为4字节或者8字节的变量,其长度根据操作系统32还是64有关,存储的内容是内存的地址。当类型是数组或自定义类等内存块时,它的值是内存块的首地址。 int a=8; int* b=&a; void* c=&a;//任意类型的指针 int d=*b; int e=*c; ......
指针 笔记

函数指针

函数指针的几种用法 #include<iostream> #include<vector> using namespace std; void add(int a, int b) { cout<<a + b<<" "; } void ForEach(const vector<int>& nums,v ......
指针 函数

引用和指针的区别

1、定义和性质不同 1、指针是一个变量,存储的地址,指向内存单元 2、引用是变量的别名,跟原始变量是同一块内存 int a = 10; int *p = &a; // p是指针, &在此是取地址运算 int &r = a; // r是引用, &在此起标识作用 2、指针可以不初始化,引用必须初始化 i ......
指针

C++11之智能指针shared_ptr

在 C++ 开发中,我们经常会遇到程序运行中突然崩溃、程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的。C++11 新标准中,增添了 unique_ptr、shared_ptr 以及 weak_ptr 这 3 个智能指针来实现堆内存的自动回收,今天就简单的介绍一下 ......
指针 shared_ptr 智能 shared ptr

快慢指针-leetcode141-判断链表中是否有环。

LeetCode #141 题目描述: 给定一个链表,判断链表中是否有环。 如果链表中存在环,则返回 true 。 否则,返回 false 。 进阶:你能用 O(1)(即,常量)内存解决此问题吗? 示例 1: example1 输入:head = [3,2,0,-4], pos = 1 输出:tru ......
快慢 指针 leetcode 141

函数指针

函数的二进制代码存放在内存四区中的代码段,函数的地址是它在内存中的起始位置。如果把函数的地址作为参数传递给函数,就可以在函数中的灵活的调用其它函数。 使用函数指针的三个步骤: 声明函数指针; 让函数指针指向函数的地址; 通过函数指针调用函数。 1、声明函数指针 声明普通指针时,必须提供指针的类型。同 ......
指针 函数

【学习总结】智能指针shared_ptr和unique_ptr使用汇总

1.shared_ptr 1.1 shared_ptr介绍 shared_ptr主要用于托管动态分配的内存。 在程序中动态分配了一块内存,这块内存可以是变量可以是对象,为了避免内存泄露,我们必须在整个程序的所有可能跑到的分支,保证这块内存不用了之后可以得到正确的释放。 普通指针使用起来麻烦,而且使用 ......
指针 shared_ptr unique_ptr ptr 智能

环形链表|哈希表、快慢指针

环形链表 判断一个链表中是否有环,如果有返回环的起始位置。难点有两个,一是判断是否有环,二是找到起始点。这里有两种方法,一种是哈希集,另一种是快慢指针。 ==对应题目142. 环形链表 II==😶‍🌫️ 哈希集 从头开始遍历整个链表,并使用哈希集去保存每个节点,接着判断节点是否有重复的。如果有那 ......
快慢 环形 指针

Go01-开发环境搭建+注释+基本数据类型+指针+命名规范

Go01-开发环境搭建+注释+基本数据类型+指针+命名规范 1.Go常用网站 https://www.topgoer.com/,Go学习网站,包含Go基础教程、beego、lris等Go开发常用框架。 Go开发软件下载:https://code.visualstudio.com/,VSCode;ht ......
指针 注释 类型 环境 数据

指针与数组(二)

指针和数组之间的替换 : 一维数组和指针: 数组名是数组的首地址 数组名是一个常指针 不可修改 可以对指针操作来访问元素 访问数组的方式:1.直接访问数组a[5]; 2.使用指针*p 等价于a[0]*(p+1)等价于a[1] 3.修改数组的值a[5]=10;*(p+5)=10; 实例: main() ......
数组 指针

指针

地址 取出某个地址& &a表示a的地址是 指针变量 指针变量,存放地址的变量 存放的事起始地址 一般指针都是添加星号 指针变量赋值类型要相同 也可以强制转换 可以把int*当成一个数据类型就可以了 使用指针 使用指针之前要赋值 否则会出错 一定要给变量赋初始值 解引用 也可以进行赋值 ......
指针

Leetcode 18. 四数之和(双指针)

题目链接在这里:四数之和 这道题和前面的三数之和一模一样,只是需要枚举前两个数而已,需要注意一下前两个数的重复点的判断,并且不要忘记排序。 from ast import List class Solution: def fourSum(self, nums: List, target: int): ......
之和 指针 Leetcode 18