指针变量的自增、自减运算

news2024/11/18 17:23:17

指针变量的自增、自减运算相比较于普通变量的自增、自减运算又什么区别呢?

让我们先来复习一下普通变量的自增、自减运算

int main()
{
	int i;                            //定义一个整型变量
	printf("请输入一个数字:\n");
	scanf("%d", &i);                  //输入一个整型数
	i++;
	printf("结果是:%d\n", i);
	return 0;
}

对于普通变量的自增运算简单来说就是对变量的加1减1,在前面的文章中对普通变量的自增、自减运算有详细的阐述,请查阅https://mp.csdn.net/mp_blog/creation/editor/141061746

那么对于指针变量的自增、自减运算是怎么样的?我们就通过一个例子,来观察一下。

main()
{
	int i;                                          //定义整型变量
	int* p;                                         //定义指针变量
	printf("please input the number:\n");
	scanf("%d", &i);                                //输入数据
	p = &i;                                         //将变量i的地址赋给指针变量p
	printf("the result1 is:%d\n", p);
	p++;                                            //指针自增,地址加1,增加4个字节
	printf("the result2 is:%d\n", p);
}

可以看到,代码输出的地址并不相同。

整型变量i在内存中占用四个字节,指针p是指向变量i的地址,这里的p++并不是简单的在地址上加1,而是指向了下一个存放整型变量的地址。

 

指针变量的自增又什么用呢?

我认为的是,将其指向下一个相邻的内存单元 。可以实现对下一个内存单元的数据存储。

指针的自减与自增类似,整型变量i在内存中占用四个字节,指针p是指向变量i的地址,这里的p--并不是简单的在地址上减1,而是指向了上一个存放整型变量的地址。

main()
{
	int i;                                          //定义整型变量
	int* p;                                         //定义指针变量
	printf("please input the number:\n");
	scanf("%d", &i);                                //输入数据
	p = &i;                                         //将变量i的地址赋给指针变量p
	printf("the result1 is:%d\n", p);
	p--;                                            //指针自减,地址减1,减少4个字节
	printf("the result2 is:%d\n", p);
}

 

以上便是本期的所有内容,欢迎大家进来共同讨论和学习,谢谢大家的观看! 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JetBrains系列产品无限重置免费试用方法

JetBrains系列产品无限重置免费试用方法 写在前面安装插件市场安装插件 写在前面 支持的产品: IntelliJ IDEA AppCode CLion DataGrip GoLand PhpStorm PyCharm Rider RubyMine WebStorm为了保证无限重置免费试用方法的稳定性,推荐下载安装2021.2.2及其…

QT Creator cmake 自定义项目结构, 编译输出目录指定

1. 目的 将不同的源文件放到不同的目录下进行管理, 如下: build: 编译输出目录 include: 头文件目录 rsources: 资源文件目录 src: cpp文件目录 2. 创建完cmake工程后修改CMakeLists.txt 配置 注 : 这里头文件目录是include, 所以在includ…

CSS05-复合选择器

一、什么是复合选择器 1-1、后代选择器(重要) 示例1: 示例2: 示例3: 1-2、子选择器 示例: 1-3、并集选择器(重要) 示例: 1-4、伪类选择器 1、链接伪类选择器 注意事项&am…

CVPR最牛图像评价算法!

本文所涉及所有资源均在 传知代码平台可获取。 目录 概述 一、论文思路 1.多任务学习框架: 2.视觉-语言对应关系: 3.动态损失权重: 4.模型优化和评估: 二、模型介绍 三、详细实现方法 1.图像编码器和语言编码器(Image…

德蒂企鹅PAEDIPROTECT:德国医研力作,专为敏感肌婴幼儿量身打造

新生儿的诞生总是伴随着喜悦,也充满着手忙脚乱,尤其是敏感肌宝宝的皮肤护理。宝宝的皮肤如同初绽的花瓣,皮肤角质层薄而脆弱,容易受到外界刺激物的影响,水分流失快,经常会出现干燥、瘙痒、红斑甚至湿疹等症…

【ARM】AMBA和总线

AMBA AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。 总线:系统芯片中各个模块之间需要有接口来连接。总线作…

爬虫类Chrome去除前端无限debugger反调试(轻松分析算法)

文章目录 引言方法1(简易抓包或者分析js适用)方法2(解决实际问题-最简单的方法)方法3(解决实际问题-麻烦点也是学会fiddler的一个功能)第一步:熟悉界面的大致功能意思第二步:保存出需要替换的代码,记住保存位置,待会儿要用第三步&…

【Python篇】详细学习 pandas 和 xlrd:从零开始

文章目录 详细学习 pandas 和 xlrd:从零开始前言一、环境准备和安装1.1 安装 pandas 和 xlrd1.2 验证安装 二、pandas 和 xlrd 的基础概念2.1 什么是 pandas?2.2 什么是 xlrd? 三、使用 pandas 读取 Excel 文件3.1 读取 Excel 文件的基础方法…

如何在精益六西格玛项目实践中激励小组成员保持积极性?

在精益六西格玛项目实践中,激励小组成员保持积极性是推动项目成功与持续改进的关键因素。精益六西格玛作为一种集精益生产与六西格玛管理精髓于一体的管理模式,旨在通过流程优化、质量提升及成本降低,实现企业的卓越绩效。然而,这…

《DevOps实践指南》笔记-Part 3

一篇文章显得略长,本文对应第5-6章、附录、认证考试、参考资源等。 前言、第1-2章请参考Part 1,第3-4章内容,请参考Part 2。 持续学习与实验的技术实践 通过以下方式制定有关提高安全性、持续改进和边做边学的制度: 建立公正的…

找不到MFC140.dll无法继续执行代码怎么办,共有6种解决方法

在计算机使用过程中,我们可能会遇到各种问题,其中一种常见的问题是DLL文件丢失。DLL文件是动态链接库文件,它包含了可以被多个程序共享的代码和数据。MFC140.dll就是其中之一。本文将深入分析MFC140.dll丢失的原因,并提供6种有效的…

双亲委派机制SPI

SPI如何破坏双亲委派机制?可根据以下概念一步步深入 什么是双亲委派机制? 双亲委派机制是Java类加载器体系中采用的一种类加载策略,旨在保证类加载的安全性和稳定性。 这一机制规定了类加载的顺序和规则,即当一个类加载器收到类…

解决启动docker desktop报The network name cannot be found的问题

现象 deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \wsl$\docker-desktop\etc\wsl_bootstrap_version: The network name…

基于Springboot+vue实现的Cosplay论坛系统

基于springbootvue实现的Cosplay论坛系统 (源码L文ppt)4-066 2.3 系统功能分析 Cosplay论坛系统中采用了Java的springboot框架进行开发,在数据库上选择MYSQL,在功能上Cosplay论坛系统我划分为了普通用户管理模…

Proteus如何添加数码管

1、打开安装好的Proteus,点击上方菜单栏中的“库”,再选择“从库选取零件”,或者在左侧元件列表中单击鼠标右键,再点击右键菜单中的“从库中挑选”选项。 2、之后在元器件库中,点击类别中的“Optoelectronics”&#…

破解 oklink 网站加密数据(升级版)

大家好!我是炒青椒不放辣,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你详细地分析并破解 oklink 网站加密数据 特别声明:本篇文章仅供学…

python脚本程序怎么写更优雅?argparse模块巧妙应用

前言 命令行程序,也称CLI程序,另一个直观的名字是脚本程序,简称脚本,由于没有图形用户界面(GUI),所以脚本程序常见的交互方式有3种: 1、脚本程序中读取环境变量,比如env…

解决小爱音箱连接Windows10蓝牙时,语音控制会中断音乐播放的问题

解决天猫精灵连接Windows10蓝牙时,语音控制会中断音乐播放的问题 解决小爱音箱连接Windows10蓝牙时,浏览器控制音量会中断音乐播放的问题 用小爱音箱当蓝牙音响的时候,遇到个很困扰的问题,每次小爱音箱语音控制的过程中,都会启动…

3.js - 运动曲线

这个球,绕着这个红色的线圈转 代码 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControlslet scene,camera,renderer,controls nulllet moon,earth null// 根据,一系列的点,创建曲线 le…

活动报名丨智源Workshop,从o1出发探索LLM推理与思维链

近期o1模型的发布,预示着AI在处理高度复杂问题上再次迈出一大步。大规模强化学习算法在一个数据极高的训练过程中,教会了模型如何利用其思维链进行富有成效的思考。 北京时间9月19日(本周四)晚7点,智源社区将组织「智源…