指针的含义、表示、规范、存储、运用

指针的含义、表示、规范、存储、运用

  • 指针的含义
  • 指针的表示
  • 指针的规范
    • 先声明再定义
    • 声明和定义一起表示
    • 错误表示
  • 指针的存储
    • 理解一个变量的存储过程和原理
    • 理解一个指针的存储过程和原理
    • 理解多个指针的存储过程和原理
  • 指针的运用

指针的含义

表示某个变量或数据所在的内存地址 注意是内存地址 不是内存地址上的数据

指针的表示

一般用指针运算符&和 表示 其中符号&表示取地址运算符 符号表示取地址上数据运算符 例如:&value 表示取变量value在内存中分配的地址 *value 表示取变量value在内存中所分配地址上的数据

指针的规范

先声明再定义

int *p;//这里是声明一个整数型指针变量p 注意int *p虽然是连着一起写 实则是int* p 其中p是变量名 int*是数据类型 且是整数型指针数据类型  
p = &a;//这里是定义一个整数型指针变量p 而指针就是表示某个变量或数据的内存地址 进一步可知&a就是取变量a在内存中分配的地址赋给整数型指针变量p 
printf("p = %d\n",p);//打印出整数型指针变量p等于地址6000001

声明和定义一起表示

int *p = &a;//取变量a在内存中分配的地址赋给整数型指针变量p
printf("p = %d\n",p);//打印出整数型指针变量p等于地址6000001

错误表示

int a = 2;//把十进制数2赋给整数变量a
int *p = a;//这里是错误的表达方式 不能把一个具体的数据赋给指针 

指针的存储

理解一个变量的存储过程和原理

int a = 5;
printf("a = %d",a);

解释以上:在栈中定义了一个变量a,并且在内存中开辟了一个int类型大小的空间, 即4个字节空间 ,然后让变量a指向这片空间,在变量a所在那片空间,里面存放数值5 ,把数值5转换成二进制数,存到变量a的4个字节空间,如下图所示:
在这里插入图片描述

理解一个指针的存储过程和原理

int a = 5;
int *p;//这里是声明一个整数型指针变量p 注意int *p虽然是连着一起写 实则是int* p 其中p是变量名 int*是数据类型 且是整数型指针数据类型  
p = &a;//这里是定义一个整数型指针变量p 而指针就是表示某个变量或数据的内存地址 进一步可知&a就是取变量a在内存中分配的地址赋给整数型指针变量p 
printf("p = %d\n",p);//打印出整数型指针变量p等于地址6000001

解释以上:在栈中定义了一个变量a,并且在内存中开辟了一个int类型大小的空间, 即4个字节空间 ,然后让变量a指向这片空间,在变量a所在那片空间,里面存放数值5 ,把数值5转换成二进制数,存到变量a的4个字节空间,另外在栈中再定义一个指针变量p,且在内存中开辟了一个int*类型大小的空间,即4个字节空间 ,最后从变量a的内存空间取出变量a所在内存地址,存放到指针变量p开辟的内存地址上,如下图所示:
在这里插入图片描述

理解多个指针的存储过程和原理

int a = 5;
int *p;//这里是声明一个整数型指针变量p 注意int *p虽然是连着一起写 实则是int* p 其中p是变量名 int*是数据类型 且是整数型指针数据类型  
p = &a;//这里是定义一个整数型指针变量p 而指针就是表示某个变量或数据的内存地址 进一步可知&a就是取变量a在内存中分配的地址赋给整数型指针变量p
int **q;//
q = &p;//
printf("q = %d\n",q);//打印出整数型指针变量q等于指针变量p的内存地址7000001

解释以上:先对数据类型和变量划分开,int **q的变量名为q,数据类型为int **,int 中存放的是int类型数据的地址,而int **中存放的是int类型数据的地址的地址,上述我们明白了,一个是指一个int数值的地址,则指针变量p中存放的是int数值的地址,即p = 6000001,为变量a的地址。那么我们可以推到,指针变量q就是存放指针变量p的地址。指针变量p存放变量a的地址,而指针变量p本身也是一个变量,它的值为变量a的地址 ,而内存也给指针变量p开辟了一片空间,让指针变量p存放它的数值,指针变量q存放指针变量p的地址,指针变量q也是一个变量。

指针的运用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 如何增强PageHelper入参的健壮性

PageHelper.startPage(int pageNum, int pageSize, boolean count) 参数为外部输入,故存在异常输入场景。比如 pageNum 和 pageSize 输入的值 负数 或者 0,所以引入PageUtils来对入参进行判断矫正,从而避免引入异常。 第1步:支持…

Copilot 插件的使用介绍:如何快速上手

GitHub Copilot 本文主要介绍如何通过脚本工具激活 GitHub Copilot 插件,提供安装及激活图文教程,大家按下面操作即可激活GitHub Copilot插件,免费使用Ai编码工具 一、GitHub Copilot 介绍 GitHub Copilot 是由 GitHub 和 OpenAI 共同开发的…

外包做了5个月,技术退步一大半了。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

苹果电脑RAW图像处理软件Capture One Pro 22 mac软件介绍

Capture One Pro 22 for mac是一款专业的RAW文件转换器和图像编辑软件,拥有更新的处理引擎、市场领先的性能和强大的新功能,可为 500 多台高端相机提供具有美丽色彩和令人难以置信的细节的终极图像质量。 Capture One Pro 22 for Mac版软件介绍 Capture…

OR-357,替代HCPL-181

提供隔离反馈 逻辑电路之间的接口 提供1通道和4通道 电平转换 DC和AC输入 高集电极-发射极电压 (VCEO 80V) 消除接地环路 特征 电流传输比(CTR : 最低 50% 在 IF 5mA, VCE 5V, Ta25 C)…

【npm link】Node命令中的npm link命令的使用,还有CLI全局命令的使用,开发命令行工具必不可少的部分

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:NodeJs 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前进的勇气…

Python 架构模式:附录 A 到 E

附录 A:摘要图和表 原文:Appendix A: Summary Diagram and Table 译者:飞龙 协议:CC BY-NC-SA 4.0 这是我们在书的最后看到的架构: 表 A-1 总结了每个模式及其功能。 表 A-1. 我们的架构组件及其功能 层组件描述领域…

【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》

【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》 写在最前面私钥加密与伪随机性 第一部分密码学的计算方法论计算安全加密的定义:对称加密算法 伪随机性伪随机生成器(PRG) 规约法规约证明 构造安全…

C++实现简单贪吃蛇游戏

文章目录 1 开发历程2 开发思路3 使用介绍4 源文件代码5 游戏截图6 小结 1 开发历程 游戏使用C语言开发,是博主某个下午心血来潮的结果,后面又花了点时间加了计分,记录历史得分的功能。 2 开发思路 其实贪吃蛇主要难在蛇身的移动上&#x…

灵活轻巧的java接口自动化测试实战

前言 无论是自动化测试还是自动化部署,撸码肯定少不了,所以下面的基于java语言的接口自动化测试,要想在业务上实现接口自动化,前提是要有一定的java基础。 如果没有java基础,也没关系。这里小编也为大家提供了一套jav…

CHS_01.1.4+操作系统体系结构 一

CHS_01.1.4操作系统体系结构 一 操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题操作系统的内核 在这个小节中 我们会学习 操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题 那这个小节的内容我们只需要做简要的了解就可以了 我们考试中常考…

数模学习day08-拟合算法

这里拟合算法可以和差值算法对比 引入 插值和拟合的区别 与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟 合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所 有的数据点最为接近,即曲线拟…

手把手教你从阿里云容器仓库拉取镜像

如何从阿里云容器镜像仓库拉取镜像 背景,我的服务器无法访问外网,那么在需要使用一些容器镜像的时候就无法从阿里云容器镜像仓库拉取镜像,那怎么办呢,坦白讲,我比较菜,我也不是做开发的,我是做…

1.9.。。

1 有道云笔记 2 .cpp #include "mywidget.h" #include "ui_mywidget.h"myWidget::myWidget(QWidget *parent) :QWidget(parent),ui(new Ui::myWidget) {ui->setupUi(this);this->setWindowTitle("原神");this->setStyleSheet("…

JVM主要的几种垃圾回收算法

1、Java 为什么要实现自动内存管理 ? 简化开发过程:通过内存自动管理可以避免手动分配和释放内存的麻烦,减少了内存泄漏和内存错误的风险,让研发能更专注于业务逻辑,不必纠结于内存管理的细节。 提高开发效率&#xff…

2024年第九届机器学习技术国际会议(ICMLT 2024) 即将召开

2024年第九届机器学习技术国际会议(ICMLT 2024)将于2024年5月24-26日在挪威奥斯陆举行。ICMLT 2024旨在讨论机器学习技术领域的最新研究技术现状和前沿趋势,为来自世界各地的科学家、工程师、实业家、学者和其他专业人士提供一个互动和交流的…

cosmos及特定应用程序的区块链

特定应用程序的区块链,简单来说,一个区块链就是一个专门的应用程序。为了实现某一特定的去中心化应用而专门实现一个区块链。 传统的用智能合约构建去中心化应用不行吗? 灵活性不足:智能合约本质上受到虚拟机本身的限制。例如,以…

uniapp自定义封装只有时分秒的组件,时分秒范围选择

说实话&#xff0c;uniapp和uview的关于只有时分秒的组件实在是不行。全是日历&#xff0c;但是实际根本就不需要日历这玩意。百度了下&#xff0c;终于看到了一个只有时分秒的组件。原地址&#xff1a;原地址&#xff0c;如若侵犯请联系我删除 <template><view clas…

BlogPark测试报告

目录 一&#xff0c;项目背景 二&#xff0c;项目功能 三&#xff0c;测试计划 3.1 测试用例的设计 3.2 功能测试 1.正常登录 2.正常写博客测试 &#xff08;输入完整的标题和内容&#xff09; 3.发布博客之后跳转到详情页观察是否有刚发布的博客 4.删除博客观察列表的…

会计报名照片怎么压缩?这几种方法一定要会

会计师报名考试的时候&#xff0c;在上传证件照信息时通常会对图片大小、格式、尺寸、还有照片dpi分辨率以及照片背景颜色都有具体的要求&#xff0c;小编在这边建议考生提前了解好报名照片的要求&#xff0c;避免照片审核失败&#xff0c;那么会计报名照片怎么压缩呢&#xff…