指针ptr

C++面试八股文:C++中指针、引用、解引用和取地址有什么不同?

# C++面试八股文:C++中指针、引用、解引用和取地址有什么不同? 某日小二参加XXX科技公司的C++工程师开发岗位2面: > 面试官:指针、引用、解引用和取地址是C++中的重要概念,请问它们在语法和语义上有所不同? > 小二:指针是一个变量,它存储了一个内存地址。 > 小二:引用是一个别名,它允 ......
八股文 八股 指针 地址

C++ this 指针

# 第一部分 this 指针的类型可理解为 Box*。 此时得到两个地址分别为 box1 和 box2 对象的地址。 ``` 实例: #include using namespace std; class Box{ public: Box(){;} ~Box(){;} Box* get_addres ......
指针 this

C++ 指向类的指针

# C++ 指向类的指针 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算符 ->,就像访问指向结构的指针一样。与所有的指针一样,您必须在使用指针之前,对指针进行初始化。 下面的实例有助于更好地理解指向类的指针的概念: ``` #include using ......
指针 指向

【CPP】通过指针编译访问类成员

前置知识:[内存对齐](https://www.cnblogs.com/jian-lh/p/17431965.html "内存对齐") 首先定义一个简单的结构体 ``` struct mCls { int a; int b; double c; }; ``` 当我们使用指针获取到了该类型的一个实例 ......
指针 成员 CPP

C++ 引用 vs 指针

引用很容易与指针混淆,它们之间有三个主要的不同: 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。 引用必须在创建时被初始化。指针可以在任何时间被初始化。 https://www.lekaowang.com/yj ......
指针 vs

关于文件处理中的文件指针调动操作 fseek( )

#include<stdio.h> fseek(FILE *STREAM, LONG OFSET, INT ORIGIN); 文件指针/文件流 偏移量 起始位置 FILE* fp; 1.将文件指针从文件开头向右移动 n 个字节,fseek(fp, n, SEEK_SET) 所以,只是将文件指针移动到 ......
文件 指针 fseek

C++的this指针

[TOC] ## 成员函数的this指针 C++当中有一个this指针。 这个this指针是从哪里来的呢? 类的任何一个成员函数,都能kuku变出来一个this指针。 从cpu的视角看看这个问题,到底是咋回事呢。 ## compiler explorer 我最近找到一个好东西, 就是compiler ......
指针 this

指针与内存管理

参考文章: 《现代 C++:一文读懂智能指针》 https://zhuanlan.zhihu.com/p/150555165 《当我们谈论shared_ptr的线程安全性时,我们在谈论什么》 https://zhuanlan.zhihu.com/p/416289479 ### 指针 指针是C++中一 ......
指针 内存

指针计算详解

int main(){ int a[5] = { 1,2,3,4,5 }; int* ptr = (int*)(&a + 1);//&a+1 跳过整个数组后的地址 数组类型转换后存入*ptr printf("%d\n", *(ptr - 1));//ptr-1 解引用获得的是a[5] 的值 p = ......
指针

数组名和指针区别(转)

指针和数组名的共同特点是都是用来指代一个地址的。 不同的是: 1、指针是需要占用内存空间来存储地址的;数组名则更像是一个立即数或者常数。你可以修改指针指向的内容,但你绝对无法改变数组名的指向。 2、数组和指针对于sizeof来说是不同的,指针变量占用的空间通常等于当前CPU的最大位数,数组名取siz ......
数组 指针

C指针

一、指针基础 1.不同内存变量的作用域和生命周期 2.指针与底层硬件联系紧密,指针可操作数据的地址,实现对数据的简介访问。 3.指针的使用场景: 3.1 使用指针传递大容量的参数,主函数和子函数使用的是同一套数据,避免了参数传递过程中的数据复制,提高了运行效率,减少了内存占用。 3.2 使用指针传输 ......
指针

指针函数

记录下指针函数的使用: typedef int (p*)(int ,int); int add(int a, int b){ printf("%\n", a+b); } int main() { p add_; add_ = add; int ret = add_(1,2); return 0; } ......
指针 函数

C++智能指针:weak_ptr

weak_ptr虽然是智能指针,但实际上是作为shared_ptr的辅助指针使用。weak_ptr通常不单独使用,一般用于查看对应的shared_ptr的信息。weak_ptr没有重载*,->等指针运算符。weak_ptr对象不会影响shared_ptr对象的引用计数。 #include<iostr ......
指针 weak_ptr 智能 weak ptr

C++智能指针:shared_ptr、unique_ptr

C++内存资源管理不当。比如:(1) 有些内存资源已经被释放,但指向它的指针并没有改变指向(成为了野指针),并且后续还在使用;(2) 有些内存资源已经被释放,后期又试图再释放一次(重复释放同一块内存会导致程序运行崩溃);(3) 没有及时释放不再使用的内存资源,造成内存泄漏,程序占用的内存资源越来越多 ......
指针 shared_ptr unique_ptr ptr 智能

[CEOI2017] Sure Bet(双指针)

### 题目大意: 给出两个数组A,B,可以在两个数组选择任意多个数,代价为选择的数的数目,得到的奖励为在数组A和数组B中选择的数的两个总和较小的那个,求能得到的最大收益 ### 思路: 1.先给两个数组分别由大到小排序后求前缀和,不难得出在数组A中选择i个数,数组B中选择j个数时,最大收益为: > ......
指针 CEOI 2017 Sure Bet

C++面试八股文:指针占用多少个字节?

某日小二参加XXX科技公司的C++工程师开发岗位4面: > 面试官:memset、memcpy和strcpy的区别是什么? > > 小二:memset用于将一块内存设置为特定的值, > > memcpy用于将一块内存从一个位置复制到另一个位置, > > strcpy用于将一个字符串从一个位置复制到另 ......
八股文 八股 指针 字节

golang深入理解指针

## Golang中的指针 指针的概念:指针地址,指针类型,指针取值 两个符号:*:根据地址取值,&:取地址 ## 关于指针 变量是用来存储数据的,变量的本质是给存储数据的内存地址起了一个好记的别名。 ```shell a:=1 //直接通过a这个变量来读取内存中保存的1这个值。在计算机底层a这个变 ......
指针 golang

关于野指针的形成原因以及处理方法

野指针:指针指向的位置是 不可知的 , 随机的, 不正确的, 没有明确限制的。 野指针形成原因: 1,指针未初始化(例 int* p;) 2,指针越界访问 (当指针指向的范围超出arr的范围时,p就是野指针) arr[10]={0}; int* p=arr; for(i=0;i<15;i++) {* ......
指针 原因 方法

野指针得生成、危害、清除

1、野指针得概念::指针指向的位置不可知的(随机、不正确、没有明确限制的) 2、野指针生成的三种情况 1、指针未定义,就进行*p相关操作 2、指针越界访问,知道指向哪,但不是有效值 3、指针指向的空间释放(函数的变量作用范围在函数内,返回函数内定义的指针到主函数是无效的,已经被释放了) 3、野指针的 ......
指针

函数返回值与指向对象的指针和引用

定义一个指向对象的指针或则引用不会调用构造函数和析构函数。 首先,强调一点,和函数传参一样,函数返回时也会做一个拷贝。从某种角度上看,和传参一样,也分为三种: (1)返回值:返回任意类型的数据类型,会将返回数据做一个拷贝(副本)赋值给变量(return语句后边的变量会生成一个副本给一个临时量,这个临 ......
指针 指向 函数 对象

双指针|三数之和

📋目录 ✅ 15.三数之和 15.三数之和 ⏰ 1.解题思路 题目要求最后的结果不能有重复的,使用哈希法要考虑最后的结果去重,很容易超时。 所以直接使用双指针法,具体思路是 先将数组进行排序,从小到大 最外层是一个for循环,从i下标为0 的地方开始,并且定义一个left在下标为i+1,定义下标为 ......
之和 指针

RAII智能指针学习记录部分

RAII:资源的有效期与持有资源的对象的声明周期严格绑定,即由对象的构造函数完成资源的分配,析构函数完成资源的释放。 RAII具有异常安全,当发生异常时自动调用已创建对象的析构函数。 struct C { C(); // 默认构造函数 C(C const &c); // 拷贝构造函数 C(C &&c ......
指针 部分 智能 RAII

智能指针

# 智能指针 ## std::auto_ptr ```c++ #include #include int main() { std::auto_ptr ptr(new int); std::auto_ptr ptr1 = ptr; std::cout cfg) { cfg_ = cfg; } std ......
指针 智能

C++面试八股文:C++中指针、引用、解引用和取地址有什么不同?

某日小二参加XXX科技公司的C++工程师开发岗位2面: > 面试官:指针、引用、解引用和取地址是C++中的重要概念,请问它们在语法和语义上有所不同? > > 小二:**指针**是一个变量,它存储了一个内存地址。 > > 小二:**引用**是一个别名,它允许使用一个变量的多个名称来访问同一个内存位置。 ......
八股文 八股 指针 地址

二级指针与const

## 二维数组分配: ```cpp #include int main() { int rows = 3; int cols = 4; // 使用二级指针创建一个动态分配的二维数组 int **array = new int*[rows]; for (int i = 0; i #include in ......
指针 const

指针 理解

一个 uint32 * 类型的指针变量,其值必然是 4 的整数倍;因为其指向一个个的 uint32 数,而 uint32 的数占用 4 字节宽度; 同理 uint8 * 类型的指针变量,其值必然是 1 的整数倍;uint16 * 类型的指针变量,其值必然是 2 的整数倍;一个包含2个 uint32 ......
指针

c++ 智能指针std::shared_ptr

c++11中常用的智能指针有shared_ptr,unique_ptr与weak_ptr。 unique_ptr是独占型指针,其计数永远为1,无拷贝构造函数,但可以使用std::move转移资源所有权。 weak_ptr没有资源所有权,一般用来辅助shared_ptr使用,多使用于多线程,循环等场景 ......
指针 shared_ptr 智能 shared std

遇到的问题之“对象不为空,字段为空,取出使用时报空指针异常【特例场景:Optional的使用】”

一、场景 二、原因 目前找到的原因是:使用Optional.of()方法对其判空后直接报错了,就没有走orElse了 Optional.of()源码 Optional.java /** * Returns an {@code Optional} with the specified present ......
特例 字段 指针 Optional 时报

C++指针需要知道的小细节

# 一、定义和赋值一个普通对象 ```cpp int ival = 1024; ``` ## 如上述代码所示,将ival定义为一个int对象,并给予初始值1024。 # 二、指针对象的声明 ```cpp int *pi; ``` ## 1、如上述代码所示,当定义/声明某个特定类型的指针时,要在类型名 ......
指针 细节

使用Stream流出现空指针异常

只有在编译的时候才会报错很容易忽视 # 样例 ```java List recTypeDictList=recTypeDictEntities.stream().filter(i->i.getRecTypeCode().equals(docitemecode)).collect(Collectors ......
指针 Stream