c语言中指针变量可以相加吗?其含义是什么?

指针变量之间还支持哪些运算?分别是什么含义... 指针变量之间还支持哪些运算?分别是什么含义 展开
 我来答
汤灵杉eX
推荐于2017-10-06 · TA获得超过2193个赞
知道小有建树答主
回答量:352
采纳率:50%
帮助的人:229万
展开全部
指针变量是有加减运算的,但是要注意以下几点:

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.指针之间可以比较大小。但是同样也限于两个相同类型的指针变量,不同类型的指针变量之间比较大小没有任何意义。指针之间的大小比较的意义,表示在内存中他们指向的位置的高低关系。
泉云岚Ik
2010-11-14
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
指针变量不可以相加,但指针所指向的值是可以相加的.

指针不可以做乘运算..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林声飘扬
推荐于2018-07-25 · TA获得超过1630个赞
知道小有建树答主
回答量:1126
采纳率:50%
帮助的人:960万
展开全部
指针指向数组元素时,可以对指针进行以下运算:
加一个整数(用+或+=),
减一个整数(用-或-=),自加运算,如p++,++p\自减运算,如p--,--p
两个指针相减,只有p1和p2都指向同一数组中的元素时才有意义)。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式