C++指针笔记

一.定义

是什么?

指针就是地址,相当于门牌号。

在这里插入图片描述

通过 0x0000也可以拿到该地址里的数据,
可是如果每创建一个变量都要去记住地址编号不太方便我们使用数据,所以才有变量。

作用?

通过指针(地址)间接访问内存。

内存的编号是从0开始记录的,一般用十六进制数字表示

指针代码

#include<iostream>
using namespace std;int main()
{// 1.定义指针//开辟一个整型(4个字节)的内存单元,里面存放的内容为10,把该内存单元用变量a来表示int a=10;//指针定义的语法: 数据类型* 指针变量名int* p;//取a的地址赋值给指针变量pp = &a;cout<<"&a="<<&a<<endl;cout<<"p="<<p<<endl;// 2.得到指针指向的地址中的值// p代表变量a的地址,*p代表取a这个内存空间中的值,*p等于a,*p=1000即是a=1000*p = 1000;cout<<"a="<<a<<endl;return 0;
}

在这里插入图片描述

二.指针所占的内存空间

指针存的是一块地址

在这里插入图片描述c

c++规定:
在32位操作系统下,不管是什么类型的指针都是4个字节
在64位操作系统下,不管是什么类型的指针都是8个字节

在x86平台(32位下

在这里插入图片描述
在这里插入图片描述

在x64平台下

在这里插入图片描述

三.空指针

内存条都有编号,是从0开始的 。空指针:指向内存中编号为0的空间。
作用:一开始不知道指针指向哪比较好,指向这好了。 int* p; 指向的空间未知,int* p = NULL,就是指向的地址为0.
特点:空指针指向的内存是不可以访问的。因为0-255这段内存空间是系统占用的。

如:
在这里插入图片描述
编译的时候不会报错,但是运行的时候就会报错了。

四.野指针

指针变量指向非法的内存空间。
比如:将指针P指向0x1100这个地址,可是这个地址我并没有去申请,所以我是不可以访问的。比如我去宾馆,我没有用身份证开房,就直接去1100房间。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161354.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CVE-2023-21839 weblogic rce漏洞复现

文章目录 一、漏洞影响版本二、漏洞验证三、启动反弹shell监听切换路径到jdk1.8 四、启动ldap服务五、使用CVE-2023-21839工具来进行攻击测试六、反弹shell 一、漏洞影响版本 CVE-2023-21839是Weblogic产品中的远程代码执行漏洞&#xff0c;由于Weblogic IIOP/T3协议存在缺陷&…

NeRF-SLAM部署运行(3060Ti)

记录在部署运行期间遇到的一些问题&#xff0c;分享给大家~ 一、环境 RTX 3060 Ti、8G显存、Ubuntu18.04 二、部署 1. 下载代码 git clone https://github.com/jrpowers/NeRF-SLAM.git --recurse-submodules git submodule update --init --recursive cd thirdparty/insta…

【网安AIGC专题11.1】论文12:理解和解释代码,GPT-3大型语言模型学生创建的代码解释比较+错误代码的解释(是否可以发现并改正)

Comparing Code Explanations Created by Students and Large Language Models 写在最前面总结思考 背景介绍编程教育—代码理解和解释技能培养编程教育—解决方案研究问题研究结果 相关工作Code ComprehensionPedagogical Benifis of code explanationLarge Language Models i…

vue3+element Plus实现弹框的拖拽、可点击底层页面功能

1、template部分 <el-dialog:modal"false"v-model"dialogVisible"title""width"30%"draggable:close-on-click-modal"false"class"message-dialog"> </el-dialog> 必须加的属性 modal:是否去掉遮罩层…

【Java 进阶篇】Java Session 原理及快速入门

大家好&#xff0c;欢迎来到本篇博客。今天&#xff0c;我们将探讨Java Web开发中一个重要而令人兴奋的概念&#xff0c;即Session&#xff08;会话&#xff09;。Session是一种在Web应用程序中跟踪用户状态和数据的机制。我们将深入了解Session的原理&#xff0c;并通过示例来…

第六讲:VBA与ACCESS的ADO连接中,所涉及的对象

《VBA数据库解决方案》教程&#xff08;10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实…

FreeRTOS笔记【一】 任务的创建(动态方法和静态方法)

一、任务创建和删除API函数 函数描述xTaskCreate()使用动态的方法创建一个任务xTaskCreateStatic()使用静态的方法创建一个任务xTaskCreateRestricted()创建一个使用MPU进行限制的任务&#xff0c;相关内存使用动态内存分配vTaskDelete()删除一个任务 二、动态创建任务 2.1 …

卷积与反卷积

文章目录 1 卷积1.1 卷积后的输出维度 2 反卷积2.1 来源2.2 原理2.3 使用2.3.1 padding2.3.2 strideoutput_padding 2.3 意义 1 卷积 1.1 卷积后的输出维度 设输入维度为i x i&#xff0c;卷积核大小为k x k&#xff0c;padding为p&#xff0c;strides为s&#xff0c;则输出维…

项目实战:新增@RequestMapping和@GetMapping和@PostMapping三个注解

1、RequestMapping package com.csdn.mymvc.annotation; import java.lang.annotation.*; Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Inherited public interface RequestMapping {String value(); }2、PostMapping package com.csdn.mymvc.annotation; im…

NLP 模型中的偏差和公平性检测

一、说明 近年来&#xff0c;自然语言处理 &#xff08;NLP&#xff09; 模型广受欢迎&#xff0c;彻底改变了我们与文本数据交互和分析的方式。这些基于深度学习技术的模型在广泛的应用中表现出了卓越的能力&#xff0c;从聊天机器人和语言翻译到情感分析和文本生成。然而&…

JVM虚拟机:垃圾回收器组合参数设定

本文重点 前面的课程中我们介绍了目前JVM中主流的垃圾回收器&#xff0c;不同的回收器会有不同的组合&#xff0c;其中1.8版本的jdk中&#xff0c;默认使用的是Parallel ScavengeParallel Old&#xff0c;也就是说新生代使用Parallel Scavenge&#xff0c;然后老年代使用Paral…

Java Jar 包还不知道怎么反编译,赶紧看看这个 IDEA 插件!

前言 当我们使用 Java 开发时&#xff0c;经常会遇到一种情况&#xff1a;我们拿到了一个 JAR 文件&#xff0c;但是却没有源代码。这时候&#xff0c;我们就需要使用反编译工具来帮助我们还原出源代码。 反编译工具可以将编译后的 JAR 文件转换回可读的 Java 源代码。这样&a…