总结---c++ 指针相关总结

C++的指针总结 引言 初入c++,肯定会对指针这个概念非常熟悉。但是为什么c/c++要使用指针? 其实每一种编程语言都使用指针,指针并不只是C/C++的独有特性。C++将指针暴露给了用户(程序员),而Java和C#等语言则将指针隐藏起来了。不光如此,指针还有很多妙用,后面会着重展开详解。 一,指针(*)的概念分析 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必... 阅读详情

一、取地址运算符&

这个是我自己理解,可能错误(编译器内部实现可能比这个要复杂的多,但这样理解基本可以应付复杂的语句和面试题目了):

取地址运算符返回一个零时的变量(有一个临时的符号在符号表里),所以再对这个临时变量做去内容运算(*)时,才能正确的知道到底取多长内存的数据,因为可以从符号表里获取零时变量的类型信息。

类似这个的还有强制转换也可以看成“强制转换运算符”返回的也是一个零时变量(符号),另外记住,强制转换运算符的优先级要高于算术运算符的优先级。

补充:对于复杂点的问题,要分清内容是内容,描述是描述,要独立开来分析,比如:

*(int*)&t = 100;  这句是c语义用法,等价于c++中 *reinterpret_cast<int*>(&t) = 100;  

在分析上面的语句时,&t这个算法表达式返回一个临时变量,这个临时变量加上强制转换符就成为了一个类型变量,以后对这个变量内存操作时就有描述依据了。所以分析时,内存内容就是&t,它可以是1002或1004等具体的地址值,这个内存块是纯粹的没有任何描述,但符号表里对应这个内存块的条目的符合有对这个内存快的描述。具体分析这样:&t假设为1002,这个1002就是个纯粹的内容,无论怎么强制转换内容都是1002(除非是int向double转换要内存补齐才会改变内容),而对这个1002的描述就是int*,所以经过取内容运算就返回1002地址对应的内容。

 其实对上面最直观的理解就是一个语句:

int *p=new int();

上面的语句中new运算符只是返回单纯的一块内存的起始地址,而p是在符号表里有描述的,这句话作用就是在符号表里填一个符合,并把内存快的起始地址填入符号表地址列中。

C++指针相关算法总结 * 1、在主函数中输入10个字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。(用指针实现)*/for(i=0;i 阅读详情

相关推荐

this指针和相关的用处——C++

this指针和相关的用处——C++

iqrmshrt的博客 908

c++指针最全总结(附源码和详细总结)

哈喽,我又来啦😄 hello😄 我是「 YR_T 」 众所周知 c++相对于其它语言的 优势就在与c++有「 指针 」 可能你之前有学习过指针 可是 你真的把指针彻底搞懂了吗🤔 如果还没有,那再来复习一下💡 ...

我的博客 2万+

SAP中MRP运行计划行超限问题的分析与解决

SAP中基于生产性物料的采购特点,通常会采用采购计划协议的方式进行采购。其具体的采购计划通常来自于成品计划独立需求,然后通过物料清单,经由MRP跑出。 在采购计划协议中的计划行中,存在一个计划行号,随着MRP在不断跑出新的计划行,该行号资源会消耗完。当计划行号消耗完后,MRP不会再跑出新的计划行。且在MD04或MD02中看不到类似提示信息。此时可以通过MD05来查看是否出现类似下图的提示信息。 ...

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 3844

C++ 指针总结

1、指针 就是内存中的一个地址编号 指针变量 指针变量用于存储地址 指针变量也是一个变量 2、指针间接赋值 一、两个变量 普通变量 指针变量 二、建立关系 指针变量=&amp;amp;amp;amp;普通变量 三、通过运算符赋值 指针变量=值 3、指针大小 在32位操作系统下所有指针类型都是4个字节大小 在64位操作系统下所有指针类型都是8个字节大小 4、野指针 指针变量指向一个未知的空间 操作野指针对应的内存空间可...

We alone,we together 286

地平线天工开物AI开发平台实战:从量化训练到模型部署的完整指南

本文提供了地平线天工开物(OpenExplorer)AI开发平台的实战指南,详细解析了从量化训练到模型部署的完整流程。文章重点对比了量化感知训练(QAT)与训练后量化(PTQ)两条核心路径的优劣与适用场景,并分享了图像分类模型PTQ部署的实战经验与常见问题调试技巧,旨在帮助开发者高效地将AI模型部署到地平线AI芯片上。

weixin_29046035的博客 456

CTP高频Tick数据:五档期货Level2深度解析20241224

高频Tick五档期货Level2数据,作为一种先进的金融市场分析工具,以其一秒四次的高频更新,为投资者揭示了市场的微观结构。本文将深入探讨这一数据如何帮助投资者洞察市场动态,优化交易策略,实现投资收益的最大化。

level2Tick的博客 1216

C++指针总结,看这一篇就够了

C++指针总结

Jasmine-Lily的博客 1024

华为私有云HCS 8.1.1实战:从镜像制作到云主机发放全流程指南

本文详细解析了华为私有云HCS 8.1.1从镜像制作到云主机发放的全流程实战指南。内容涵盖制作标准化QCOW2镜像、配置云主机规格与主机组、规划外部网络,以及在运营面为租户初始化资源、配置审批流与产品目录。最后,通过用户视角演示了从创建VPC网络到申请、审批并最终绑定EIP访问云主机的完整操作步骤,为运维人员和架构师提供了一套清晰、可落地的HCS部署与管理实践方案。

weixin_29305313的博客 1124

C/C++指针相关知识点总结(学不完,根本学不完!!!!)

指针是一个值为内存地址的变量(或数据对象)。首先指针是一个变量,它的值就是某个变量的内存地址,就好比 int 类型的变量它的值是整数也是一样的。//定义两个指针变量指向room int * p1 = & room;printf("room 地址:0x%p\n" , & room);printf("p1 地址:0x%p\n" , & p1);printf("p2 地址:0x%p\n" , & p2);printf("room 所占字节:%d\n" , izeof(room));

qq_42595610的博客 1493

手把手教你理解ARM SoC中的PPU:电源管理IP的配置与实战避坑指南

本文深入解析ARM SoC中的PPU(Power Policy Unit)电源管理IP,提供详细的配置指南与实战避坑技巧。从PPU基础架构、寄存器配置到与PCSM的协同工作,全面介绍如何优化电源管理策略,解决常见配置误区,并分享高级调试与性能优化方法,助力工程师提升低功耗SoC设计效率。

weixin_28693447的博客 479

PLC1200使用CB1241RS485通讯模块做从站进行Modbus Rtu通信

添加新设备(PLC)->设备和网络管理->点击PLC->看到硬件目录选择通信板->点到点->CB1241(RS485)->看到6ES7241-1CH30-1XB0选择添加,如图。指向Modbus保持寄存器数据块的指针 我这里指向了自定义的DB块数据中一个INT数组。在通信->通信处理模块->MODBUS(选择不带RTU的通信指令块)注意:接线时,TRA接485调试模块的B- TRB接调试模块的A+组态后的硬件标识符 270 对应自己组态后自动生成的。1:事务完成,且无任何错误。波特率对应自己使用的。

swmyaopeng的博客 2万+

[C++]指针相关的知识点合集

a是取地址操作,它返回变量a的内存地址。*p是解引用操作,它返回指针p指向的内存地址中的值。int* p1;//表示声明一个指向 int 类型的指针p1。float* p2;//表示声明一个指向 float 类型的指针p2。double* p3;//表示声明一个指向 double 类型的指针p3。char* p4;//表示声明一个指向 char 类型的指针p4。string* p5;//表示声明一个指向 string 类型的指针p5。4.指针初始化二、指向结构体的指针在 C++ 中,结构体(

2302_80281315的博客 1955

3D Slicer-最强大的开源医学图像分割工具简要概述

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。读/写DICOM图像和多种其他格式;三维图像、多边形网格和体积渲染的交互式可视化;手动编辑和标记图像;使用刚性和非刚性算法融合和共同配准数据;图像自动分割;跟踪图像引导程序的设备。所有的功能模块可在工具栏里找到,提供搜索,下拉选择,左右切换等功能。3D slicer的大概情况就介绍到这里。它的功能非常强大,也没有必要说掌握每个功能的使用。

Tina姐的博客 2万+

c++指针相关试题

【代码】【持续更新】c++指针相关试题。

客舟中 1130

Redhawk:什么是timing window?

STA timing file中timing window的作用和计算方式

m0_61544122的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

c++指针相关知识

注:不保证100%正确。

weixin_44654161的博客 280

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C/C++字符串,数组,指针,引用相关知识总结

C/C++字符串,数组,指针,引用相关知识总结

Sabrisimba的博客 1073

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C++中this指针和模板相关总结

7、this指针 7.1、this指针概念、用处、使用 7.2、this指针的创建、存储位置? 7.3、this指针在类中的使用 7.4、delete this相关问题 8、模板相关问题 8.1、为什么模板类一般都放在一个h文件中? 8.2、模板函数和模板类的特例化 8.3、函数模板 8.4、类模板 8.5、模板什么时候实例化?

loytuls的博客 874

C++ 智能指针相关

5.智能指针 C++程序设计中的内存管理通常会有程序员申请+及时释放,但是在实际情况中会有很多指针频繁的申请和释放,容易出现一些疏忽大意的问题(内存泄漏)。C++11中引入智能指针的概念,智能指针能够更好的管理内存。 4.1 智能指针: 1.实质:对普通指针的进一步封装,实质是一个类对象,行为表现和指针一样。 2.作用:防止程序员忘记调用delete释放内存,以及其他程序内存异常情况造成的程序崩溃。 3.功能: 当智能指针(类对象)被使用过之后,会被自动删除,指向的内存也会自动的释放。 4.2 四种智能指针

GUO-QI的博客 1980

C++指针相关

const char * arr = “123”; char * brr = “123”; const char crr[] = “123”; char drr[] = “123”; 参考回答: const char * arr = “123”; //字符串123保存在常量区,const本来是修饰arr指向的值不能通过arr去修改,但是字符串“123”在常量区,本来就不能改变,所以加不加const效果都一样 char * brr = “123”; //字符串123保存在常量区,这个arr指针指向的是同一个位

漫长IT路 443

cpp中指针自增相关操作详解

最近写操作系统实验时着实被指针的自增操作恶心到了,所以出一篇博客总结一下,长个教训。 首先来看一段代码吧,请读者先自行判断一下这个操作之后输出结果是什么。 int a[] = {3,7}; int *b = a; std::cout<<*b++; 你觉得输出的结果是什么呢?7 or 4? 正确答案是:3 下面解释一下: std::cout<<*b++; 等价于: std::cout<<*(b++); 即先*b取出指针指向的元素并返回,之后再对指针自增 其实加了括号

qq_43671574的博客 473

【指针】C/C++指针相关知识

【指针】C/C++指针相关知识 提到指针,需要联系到计算机的内存等相关的知识,这类理论知识我就不过多阐述了,可能比较枯燥,我会用实践为主来分析指针。 首先我们需要了解一下 & 符号,这个符号相信大家都不陌生,是C语言输入函数:scanf() 需要的,比如一个整形的变量a需要 scanf("%d",&a); 完成对变量a键盘输入。 但有没有发现,字符串类型也就是字符数组的输入,为什么不用加这个&符号就可以呢? #include <iostream> #include &lt

ZZY6868的博客 257

【小白学习C++ 教程】七、在C++指针声明和指针相关概念

@Author:Runsen C++ 指针学习起来有点难,但是很重要。一些 C++ 程序使用指针更容易执行,另外其他 C++ 程序,例如动态内存分配,没有指针就无法执行。 每个变量都是一个内存位置,每个内存位置都定义了其地址,可以使用与号(&)运算符访问该地址,该运算符表示内存中的地址。 下面代码考虑以下将打印定义的变量的地址 #include <iostream> using namespace std; int main () { int var1; char var

微信号:RunsenLiu 1533

c++中的指针相关

类模板的成员函数也需要是模板函数,其定义方式有两种。一种是在类模板内部定义成员函数,另一种是在类模板外部定义。在外部定义时,需要在函数定义前加上模板参数列表,以表明这是一个类模板的成员函数。例如,上面Stack类模板中push和popreturn 0;

m0_47195133的博客 707

C++ 指针相关练习题

1、考试成绩#1 请编写一个程序,动态分配一个足够大的数组来保存用户定义的考试成绩。一旦输入了所有的分数,数组就应该被传递给一个按照升序排序的函数。应该调用另一个函数来计平均分数。程序应该显示已排序的分数列表和平均分,并加上恰当的标题。请尽可能使用指针表示法而不是数组表示法。 输入验证:考试成绩不接受负数。 #include <iostream> using namespace std; void sort(double *s,int n) { for(int i=0;i<n;

薛铁钢的博客 3552
上一篇: OGRE嵌入到MFC
下一篇: c++高级---C++拷贝构造函数详解
HNFXS985
博客等级 码龄14年 219粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值