指针不可以相加,指针运算

SDUWH - 《高级程序设计语言(C)》 - - 练习五-山大威海c语言 SDUWH-C语言-pta-代码答案 阅读详情

指针变量是有加减运算的,但是要注意以下几点:

 

1.指针变量中存放的是地址值,也就是一个数字地址,例如某指针变量中的值是0x20000000,表示表示此指针变量存放的是内存中位于0x20000000地方的内存地址。指针变量可以加减,但是只能与整型数据加减,此时加减的含义并不是其地址值进行了加减,也就是说如果指针变量p的值是0x20000000,那么p=p+2;的值并不是0x20000002,并不是地址值的简单相加,那么地址值加减多少是与指针指向的数据类型相关联的,如果在32位的操作系统上,p是指向整型数据的指针变量,那么p=p+2之后,p的地址值变成0x20000008,也就说实际上地址值加了多少呢:sizeof(int)*2这么多。说明白点,我们加减的数字是以指针指向的数据类型为量度的,P+2表示p在内存中前移两个int的距离,如果p不是int类型,而是其他类型道理也是一样。同样指针与整型数据相减也是同样的道理。

 

2.指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数),例如对于int类型的指针p和p1. p1-p的意义表示他们之间相隔多少个int类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。 指针变量的自加和自减实际上是与整数1的加减运算。

 

3.指针之间可以比较大小。但是同样也限于两个相同类型的指针变量,不同类型的指针变量之间比较大小没有任何意义。指针之间的大小比较的意义,表示在内存中他们指向的位置的高低关系。

 

基于STM32智能震动报警器震动检测声光报警系统设计 *单片机设计介绍,基于STM32智能震动报警器震动检测声光报警系统设计。 阅读详情

相关推荐

自动驾驶仿真:基于Carsim开发的加速度请求模型

1、自动驾驶行业中,算法端对于纵向控制的功能预留接口基本都是加速度,我们需要给控制器仿真加速度的信号,控制器才会实现对纵向功能的控制。2、Carsim或者其他动力学软件,主要提供者节气门开度和主缸压力进行控制。我们在进行联合仿真时,往往都要通过PID的方式将请求加速度转换成对应的节气门开度与主缸压力传给动力学软件进行闭环控制。

zataji的博客 6914

数据结构(期末总复习)

数据结构(期末总复习)

star_seaa的博客 5054

visual studio 2017编译Triangle库遇到的问题和解决办法

这段时间因为一个项目需要使用到Triangle这个三角剖分工具,需要在windows环境下进行对源码编译,中间踩了很多坑,特此记录下。 1、下载 下载链接是下边这个,需要翻墙 http://www.cs.cmu.edu/~quake/triangle.html 2、编译。。超。。。级。。。麻。。。烦。。。 在ubutu下安装一切顺利,完全没遇到什么麻烦,但是换到windows下就麻烦不断...

csubai07的博客 2438

第四章作业-串-计算机17级

1-1 函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。 (1分) T√         F 根据百度百科strcmp函数 规则 当s1<s2时,返回为负数; 当s1==s2时,返回值= 0; 当s1>s2时,返回正数。 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直...

沐妖的博客 9686

分享一个我自用的 Python 消息发送模块,支持邮件、钉钉、企业微信

🔥 分享一个我自用的 Python 消息发送模块,支持邮件、钉钉、企业微信

XiaoqiangClub的博客 477

python实现MACD策略背离点的判断 (附完整源码)

python实现MACD策略背离点的判断 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 665

C语言博客作业--字符数组

一、PTA实验作业 题目1:7-2 统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路(流程图) 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明 答案错误,判断单词代码不对,结果输出数字,没有考虑到在一个单词结束后的空格和逗号处理; 调试发现在判断完一个单词后就开始出错,结果i在循环3次后就结束; 题目2:7-3 找最长的字符串 1. 本题PTA提交列...

weixin_30878361的博客 469

Codex入门10-Goal自主任务(进阶必学:设定目标就不管了,AI自己干活到完成)

/goal 是Codex CLI最强大的进阶功能——设定一个目标,AI就会制定计划、分步执行、自我测试、持续迭代,即使你关掉终端也会继续。本文详解/goal的工作原理、配置启用方法、常用命令(pause/resume/status/clear),以及如何写出高质量的目标描述让AI高效自主完成任务。

yueyeguzhuo的专栏 454

【PTA|客观题|期末复习】指针

假设scanf语句执行时输入ABCDE,能使puts(s)语句正确输出ABCDE字符串的程序段是_。设变量定义为int a[2]={1,3},*p=&a[θ]+1;若p1、p2都是整型指针,1已经指向变量x,要使p2也指向x,()是正确的。若定义pf为指向float类型变量f的指针,下列语句中_是正确的。,下列表达式错误的是()。下列语句定义px为指向int类型变量x的指针,正确的是()在基类型相同的两个指针变量之间,不能进行的运算是()。根据声明int(*p)[18],p是一个()。

La_gloire的博客 1210

PLC的自抗扰控制(ADRC)算法

1、自抗扰控制算法,网上很多文章有所讲解,大家也可以关注韩京清教授的论文和书籍,这里就不赘述了,下面给出梯形图+SCL代码。 1、跟踪微分器 2、线性控制率 3、博图SCL控制代码 4、ADRC控制算法的所有公式汇总 ......

RXXW_Dor的博客 3852

AMDGPU SVM VRAM Migration 实现详解

AMD正在基于DRM SVM框架重构SVM实现,该框架即将广泛应用。本文分析了AMD开发者提交的POC验证版本的技术方案。该架构分为三层:AMDGPU SVM映射层、DRM Pagemap通用框架层和AMDGPU迁移后端硬件驱动层。系统涉及三个地址空间转换:VRAM分配器空间、HPA/PFN空间和GPU PTE地址空间。关键数据结构包括设备级迁移基础设施amdgpu_pagemap、迁移临时BO包装器amdgpu_svm_bo等。该方案通过地址空间转换实现VRAM迁移功能,目前仍处于POC阶段,设计可能变更

图形/计算GPU的驱动与虚拟化技术分享园地 861

c语言中如何不使用加号,完成两个数字相加

c语言中如何不使用加号,完成两个数字相加 在c语言中,我们经常求两个数字加和的时候,通常会使用+ ,来将两数相加得出相加结果。 例如:#include "stdio.h" int main() { int a=3; int b=2; printf("%d\n",a+b); return 0; }这样输出的结果为: 5那么我们不使用加号如何得出a+b=5的结果呢?

4968

2万字大厂面经:小米嵌入式面试题及参考答案(持续更新)

BIOS (Basic Input/Output System) 是一种存储在ROM中的固件程序,它为计算机提供了最基础的硬件初始化和服务。BIOS主要存在于传统的x86架构计算机中。嵌入式系统的启动流程取决于具体的硬件平台和所采用的操作系统。复位阶段:当系统通电或复位时,CPU进入复位状态。硬件初始化:CPU和必要的硬件设备(如内存控制器)被初始化。加载引导加载程序:引导加载程序(如U-Boot)被加载到内存中。执行引导加载程序:引导加载程序开始执行,初始化更多的硬件设备,并检测存储介质。

大模型大数据攻城狮的专栏 2529

指针的几个运算

指针的算术运算与解引用 指针的加减:指针的加减是是加类型(指针的类型,)类型是几个字节,指针就向前或者向后走几个字节。 指针的解引用:指针的类型决定了在对指针进行解引用的时候,能访问多少个字节,比如对char*的指针变量进行解引用只能访问一个字节,对int*的指针变量解引用能访问4个字节。一般这种操作出现在对地址的强转上,借以扩充或者缩小可以访问的地址的范围。这个在多态的虚函数表那块有应用。 ...

woainilixuhao的博客 2554

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 分析:字符串形式的整数相加意味着超出整数长度限制,即:不能将字符串转化成整数直接采用加法运算(...

qq_21031977的博客 655

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

字符串数字相加_LeetCode 415. 字符串相加 | Python

415. 字符串相加题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/add-strings题目给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigIntege...

weixin_39970823的博客 89

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

如何在程序中不用加号实现加法_运用指针在不用加号的情况进行加法运算的讲解...

平常我们进行加法运算都是用类似以下的代码进行运算#includeint main(){int a=2,b=3;printf("%d\n",a+b);return 0;}其结果为 5,对a和b进行了加法运算但我们如何不用加号进行加法运算呢?先看一段数组运算#includeint main(){int a[]={1,2};printf("%d\n",a[0]+a[1]);return 0;}运行结果是...

weixin_39903538的博客 181

C++练习:指针

指针

m0_73582761的博客 569

【Java语言】力扣系列----415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 具体代码实现如下: class Solution { public String addStrings(String num1, String num2) { // 双指针进行逐位相

一只小白的奋斗历程的博客 336

LeetCode 415. 字符串相加 | Python

使用双指针模拟加法运算,解决 LeetCode 《415. 字符串相加》问题

"大梦三千秋的博客 774

【每日一题Day268】LC415字符串相加 | 模拟

【每日一题Day268】LC415字符串相加 | 模拟

Tikitian的博客 194

leetcode415-字符串相加&拓展题36进制加法

一.题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 提示: num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前导零 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式 二.题目解析 public static String addStrings(String num1, String num2) { /*双指针法*/ int i

执子手 吹散苍茫茫烟波 477

关于一句代码的解释(c primer plus一书中的错误)

total+=*start++; 说明:start是一个指针,这句代码中,*和++运算符具有相同的优先级,但是,这里按照从从右向左的顺序执行代码,不过,运行时,是先将start指针指向的值与total相加,然后指针自增1,如果换成total+=*++start;则先指针start自增1,然后将所指向的值与total相加赋给total。

673

CI20.1--不用运算符做加法

实现一个函数求两个数的和。不可以用+或其他运算符号。 思路: 直观的思路是通过位运算来做加法。第一步:先不考虑进位,将两个数通过异或可以求得对应位的和;第二步:考虑进位,将两个数通过与运算可以求得哪些位有进位,然后将该结果左移一位,再和第一步中的结果进行异或,一直迭代制导进位的结果为0。 #include using namespace std; int AddBit(int a, in

f_x_q的专栏 780

415. 字符串相加【模拟】【Easy】

415. 字符串相加 难度简单 给定两个字符串形式的非负整数num1和num2,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如BigInteger), 也不能直接将输入的字符串转换为整数形式。 示例 1: 输入:num1 = "11", num2 = "123" 输出:"134" 示例 2: 输入:num1 = "456", num2 = "77" 输出:"533" 示例 3: 输入:num1 = "0", num2 = "0" 输...

pre_eminent的JAVA学习园地 482

多项式加法运算的链表实现

两个多项式分别使用单链表实现,链表的每一个节点的结构为:系数、指数、下一个节点的地址。当某一个多项式处理完时,将另一个多项式的所有节点依次复制到结果多项式中去。一句话:采用不带头结点的单向链表,按照指数递减的顺序排列各项。主要思路:相同指数的项系数相加,其余部分进行拷贝。链表节点按照指数递减顺序排列。

Chenglin(Ben) Yu's Miracle 403
上一篇: EBP 入栈
下一篇: STL unique_
firstit
博客等级 码龄20年 21粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值