指针+1,怎么加?

2023-05-16

指针+1

指针+1,是加一个单元格还是加一个字节呢,
先看一个程序:

#include <stdio.h>
int main()
{
	int arr[] = {1,2,3,4,5,6,7,8,9,10};
	int *p = arr;
	p++;//p = p + 1
	*p = 10;
	p++;
	*p = 20;
	printf("%d,%d\n",arr[0],arr[1]);
	return 0;
}

这个程序通过编译结果为 1 10,这个结果说明p++后,arr[1]的值被更换为10.

所以指针+1就是加一个单元格,那为什么会是加一个单元格而不是一个字节呢?看一个图。

这个图是假设p++加一个字节,p++,*p=10 的地址赋值后(红色框),arr[0]=2561(蓝色框),显然这个值不是我们想要的结果。
所以指针+1,并非加一个字节,而是加一个单元格。

下面有几个题
指针的算术运算 +,-
指针+i,表示加i个单元格,其加 i * sizeof(指针本身去掉一个 * )字节

int main()
{
	int *p = (int*)2000;
	printf("%d\n",p-2);//2000-2 * sizeof(int)=1992
	printf("%d\n",(char*)p-2);//2000-2 * sizeof(char)=1998
	printf("%d\n",(short*)p-2);//2000-2 * sizeof(short)=1996
	printf("%d\n",(long long*)p-2);//1984
	printf("%d\n",(float*)p-2);//1992
	printf("%d\n",(double*)p-2);//1984
	printf("%d\n",(int **)p-2);//2000-2*sizeof(int*)=1992
	printf("%d\n",(unsigned long)p-2);//1998
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

指针+1,怎么加? 的相关文章

  • 【软,码】.NET内容协商模块

    为了让我们编写的符合W3C标准的网站精确地服务于客户 xff0c 我们常常需要根据客户使用的浏览器代理类型向客户发送不同的Content Type类型 要做到这一点 xff0c 方案有多种 比较简单的是在页面逻辑中判断客户代理的支持类型 x
  • 我发布的资源列表

    为了方便朋友们查看 xff0c 我特把我发布的所有资源的做成这个列表 您可以从该列表的链接去查看并下载 JS 43 XML X HTML源码 1 红鱼X的FLV 播放器 2007 08 05 2 XML X HTML 文本化工具 2007
  • Java技术世界真是乱!

    从前一直有个心愿 xff0c 就是希望有朝一日彻底放弃 NET xff0c 然后去追随Java 今天想想 xff0c 真不知道我这心愿是不是对的 之所以想离开 NET而转向Java xff0c 原因当然是不甘心于被微软锁死在Windows平
  • 【翻】【英汉对照】【完整官方参考】Windows媒体播放器11 SDK 播放器对象模型(一)

    说明 要看原始参考 xff0c 请到http msdn2 microsoft com en us library aa393405 aspx Windows媒体播放器对象模型 本微软Windows媒体播放器ActiveX控件对象模型提供使开
  • 【翻】【英汉对照】【完整官方参考】Windows媒体播放器11 SDK 播放器对象模型(二)

    说明 要查看原始页面 xff0c 请到http msdn2 microsoft com en us library aa384855 aspx 关于本播放器对象模型 微软Windows媒体播放器控件是一个使用微软COM技术的标准Active
  • 白忙活一场

    前天晚上好不容易挤出时间翻译Windows媒体播放器11 SDK 播放器对象模型 xff08 三 xff09 xff0c 可是翻译了三分之一之后 xff0c 当要以草稿方式保存的时候 xff0c 却始终无法提交到站点上 xff0c 最后刷新
  • 配置并上传FCKEditor.net

    前天使用CSDN翻译文章 xff0c 翻译了一大部分 xff0c 可是最终因为没能上传成功而报废 那时候真的很郁闷 xff01 于是决定在自己的系统上配置和CSDN用的Web编辑器一样的一个FCKEditor系统 xff0c 再写文章的时候
  • 在 ASP.NET 中执行 URL 重写

    发布日期 xff1a 8 23 2004 更新日期 xff1a 8 23 2004 Scott Mitchell 4GuysFromRolla com 适用范围 xff1a Microsoft ASP NET 摘要 xff1a 介绍如何使用
  • 我的近况(随时更新)

    2007年9月23日 最近在开发ASP NET Web服务器 xff0c 因为使用IIS 太受限制了 xff0c 要升级还得升级操作系统 现在的开发阶段为内核开发 xff0c 已经完成基本的开发 xff0c 还没有包装起来
  • adb dumpsys命令用法

    dumpsys命令功能很强大 xff0c 能dump系统服务的各种状态 xff0c 非常有必要熟悉该命令的用法以及含义 一 概述 1 1 dumpsys命令用法 可通过dumpsys命令查询系统服务的运行状态 对象的成员变量属性值 xff0
  • Python if-else使用

    1 从键盘上输 个数 xff0c 显示它的绝对值 不允许使 abs num 61 float input 34 请输入一个实数 xff1a 34 if num gt 0 print num else print num 2 假设 户名为ad
  • Ubuntu 串口工具 —— cutecom

    串口调试工具 xff1a cutecom xff08 非常好用 xff09 安装 xff1a span class token function sudo span span class token function apt get spa
  • Android Camera 预览拉伸问题

    预览会出现拉伸的问题代码 xff1a 预览拉伸Demo 预览画面拉伸问题改正的 gitee 代码在文章最后给出 预览拉伸的原因 xff1a 每颗Camera都支持一些分辨率 xff0c Camera的这些图像如果和预览画面的宽高比例不一致就
  • Dockerfile关键字详解

    文章目录 一 Dockerfile基础知识二 Dockerfile常用的指令三 Dockerfile实战测试1 编写如下Dockerfile文件 xff0c 创建自己的centos镜像2 编译镜像3 测试运行 一 Dockerfile基础知
  • docker search 命令详解

    原文链接 docker search 命令详解 文章目录 一 docker search 命令选项二 docker search 使用实例2 1 通过指定镜像名搜索2 2 搜索结果不进行截断显示2 3 设置搜索结果只显示10个2 4 搜索结
  • “lib32ncurses5 : Depends: libc6-i386 (>= 2.18) but it is not going to be installed”类似问题解决办法

    问题背景 在64位Linux操作系统的主机上安装32位的交叉编译链时 xff0c 如果64位系统与32位的工具链不兼容 xff0c 在我们使用工具链对代码进行交叉编译时 xff0c 往往会出现明明工具链已经安装到了指定的目录下 xff0c
  • Spring框架基础知识概述

    目录 第一章 xff1a Spring概述第二章 xff1a Spring的第一个核心功能 xff1a ioc第三章 xff1a spring的第二个核心功能 xff1a aop第四章 xff1a 把mybatis框架和spring集成在一
  • 有关Opencv Undefined Reference to cv::Mat::updateContinuityFlag()编译问题的解决

    VScode编译中opencv的undefined reference 问题 一般来说 xff0c undefined reference to cv 等的问题是关于编译时依赖文件的问题 xff0c 应该将包含库的路径弄好了就没问题 xff
  • 利用MVC编写GUI程序-----梯形的面积(JAVA实用教程2-第五版 第九章 编程题 三(3)小题)

    span class token punctuation span span class token number 3 span span class token punctuation span 编写一个体现MVC结构的GUI程序 首先编
  • VMware安装Centos7系统(命令行模式)

    文章目录 一 准备软件 系统镜像二 创建新虚拟机三 安装CentOS7系统四 配置固定IP便于远程管理 一 准备软件 系统镜像 软件 xff1a VMware 14 镜像 xff1a CentOS7 镜像官网下载地址 xff1a http

随机推荐

  • mariadb(mysql)数据库字符集设置(二)(centos7)

    mariadb xff08 mysql xff09 数据库在存储数据时 xff0c 默认编码为latinl xff0c 当存储数据为中文字符时 xff0c 在显示或者web调用时会显示为乱码 xff0c 为解决该乱码问题 xff0c 需修改
  • 「第四范式」2023届-秋季校园招聘正式启动!

  • ubuntu安装chrome报错libnss3

    1 下载官网提供的最新版本 xff08 注意区分32位和64位 xff09 2 进入到文件所在路径 xff0c 执行安装命令 xff1a cd Downloads Downloads sudo dpkg i google chrome st
  • 16-命令模式Quarkus实现

    摘要 xff1a 本文用一个实例场景描述Gof 23设计模式中的命令 xff08 Command xff09 模式 xff0c 并用Quarkus框架代码给予实现 xff0c 同时也给出实现代码的UML模型 关键字 xff1a Gof 23
  • ubuntu16.04设置root用户登陆图形界面的方法

    因为 ubuntu 默认不能使用root登录图形界面 xff0c 且Ubuntu默认的是root用户不能登录图形界面的 xff0c 只能以其他用户登录图形界面 这样就很麻烦 xff0c 因为权限的问题 xff0c 不能随意复制删除文件 xf
  • 详解MariaDB数据库的存储过程

    1 什么是存储过程 很多时候 xff0c SQL语句都是针对一个或多个表的单条语句 但是也有时候有的查询语句需要进行多次联表查询才能完成 xff0c 此时就需要用到存储过程了 存储过程 xff08 Stored Procedure xff0
  • Tensorflow读取数据--TFrecord格式

    一 什么是Tfrecord xff1f TFRecords可以允许你讲任意的数据转换为TensorFlow所支持的格式 xff0c 这种方法可以使TensorFlow的数据集更容易与网络应用架构相匹配 这种建议的方法就是使用TFRecord
  • kafka架构、producer及consumer流程图

    1 kafka架构 xff1a 2 producer流程 xff1a 3 consumer流程 xff1a
  • Ubuntu18.04下安装OpenCv依赖包libjasper-dev

    问题 Ubuntu18 4下使用sudo apt get install libjaster dev安装包时提示找不到这个包 解决办法 终端中输入以下代码即可解决 span class token function sudo span ad
  • Nginx应用知识汇总

    一 Nginx是什么 xff1f Nginx engine x 是一个高性能的HTTP和反向代理web服务器 Nginx是一款轻量级的Web 服务器 反向代理服务器及电子邮件 xff08 IMAP POP3 xff09 代理服务器 xff0
  • JAVA学习代码——txt写入学生信息

    涉及 xff1a list的使用和遍历 文件的读 循环控制语句的使用 文件操作类 xff1a FileOperation package file import java io BufferedReader import java io B
  • 怎样把WORD中的错误一次性全部忽略

    1 审阅 选项 拼写和语法 点击全部忽略 2 或者打开word选项 校对 将键入时检查拼写勾选项去掉 xff0c 或者勾选下面的两项例外项 xff0c 不显示拼写和语法错误 xff0c 确定 这样就不会再检查你的拼写 xff0c 不用忽略了
  • 知识图谱前沿技术课程(华东师范大学站)

    知识图谱表达了各类实体 概念及其之间的各种语义关系 xff0c 成为了大数据时代知识表示的主要形态之一 知识图谱是目前人工智能领域的一个重要支撑 xff0c 已经在诸如智能问答 搜索 推荐等具体领域得到很好的应用 华东师范大学计算机应用研究
  • Win10白色图标制作及替换

    win10白色图标制作 xff1a 一 软件准备 IcoFX xff1a 提取图标 生成图标 Photoshop xff1a 修改编辑图标 二 制作步骤 1 提取图标 打开IcoFX xff0c 直接在桌面上选择快捷方式 xff0c 拉拽以
  • Java中输出当前时间的各种方法

    import java text import java util class Example public static void main String args TimeZone setDefault TimeZone getTime
  • VMware无法打开已存在虚拟机vmx文件解决办法

    复制过来的虚拟机文件 在 VMware 无法直接打开 xff08 文件 打开 无反应 xff09 解决办法 xff1a 1 首先打开vmx文件 xff0c 将ios路径设置正确 2 将虚拟机进程关闭 3 在文件管理器中右键vmx文件 xff
  • 使用cmd命令行查看wifi密码

    1 xff1a 在命令行输入下面命令 xff0c 查询本机存储WIFI xff1a netsh wlan show profiles 2 xff1a 输入下面命令查询WIFI密码 xff0c 第二张图显示的就是WIFI密码 netsh wl
  • Kettle 7.1 资源库配置&&无法配置资源库&&自定义配置文件路径

    资源库配置 1 kettle 7 1 资源库配置在左上角的Connect 2 点击Connect xff0c 弹出默认资源库 xff1a Pentaho Repository 3 在弹出窗口选择other Repositories 选择对应
  • oracle 数据库 日期时间整理

    oracle 数据库 日期时间整理 一 xff1a 日期格式 1 xff09 年 xff1a YYYY或yyyy xff08 可以截取1 4位 xff09 select to char sysdate 39 yyyy 39 from dua
  • 指针+1,怎么加?

    指针 43 1 指针 xff0b 1 xff0c 是加一个单元格还是加一个字节呢 xff0c 先看一个程序 xff1a include lt stdio h gt int main int arr 61 1 2 3 4 5 6 7 8 9