c语言中用指针算两个数相减,C语言指针算术运算浅析

摘 要 指针是C语言最强大的功能,也是C语言中最难以掌握的功能。掌握指针的应用,可以使程序简洁、高效。每一个学习和使用C语言的人,都应当深入的学习和掌握指针。指针算术运算是指针操作中比较难掌握的部分。在本文中,我们将总结C语言的指针运算。

关键词 C语言 运算 指针

指针是C语言最强大的功能,也是C语言中最难以掌握的功能。掌握指针的应用,可以使程序简洁、高效。每一个学习和使用C语言的人,都应当深入的学习和掌握指针。指针算术运算是指针操作中比较难掌握的部分。在本文中,我们将总结C语言的指针运算。

指针可以执行的算术运算有:①指针自增;②指针自减;③指针加上一个整型常量或整型变量n;④指针减去一个整型常量或整型变量n;⑤两个指针相减。

需要注意的是,通常只有当指针指向某个数组元素时,才对指针作上述5种算术运算。

一、指针自增

指针自增就是指向本数组的下一个元素。

假设有数组定义如下:double a[5] = {3.2, 4.75, 7.2, 9, 1.7};

double *p = a;

此时内存图示如下:

此时若执行p++,指针p指向数组的下一个元素,图示如下:

二、指针自减

指针自减就是指向本数组的上一个元素。

例如有数组定义如下:double a[5] = {3.2, 4.75, 7.2, 9, 1.7};

double *p = &a[4];

内存图示如下:

此时若执行p--,指针p指向数组的上一个元素,图示如下:

三、指针加上一个整型常量或整型变量n

指针加上一个整型常量或整型变量n的结果是得到一个指向本指针所指向的数组元素之后第n个元素的指针。例如数组定义如下:

double a[5] = {3.2, 4.75, 7.2, 9, 1.7};

double *p = a;

此时指针p指向数组a的第一个元素。

若执行 p = p + 3,指针p指向数组元素a[3]

四、指针减去一个整型常量或整型变量n

指针减去一个整型常量或整型变量n的结果是得到一个指向本指针所指向的数组元素之前第n个元素的指针。

若有定义 double a[5] = {3.2, 4.75, 7.2, 9, 1.7};

double *p = &a[4];

指针p指向数组元素a[4]。

如果执行p = p - 3之后,指针p指向数组元素a[1]

五、两个指针相减

首先必须明确,通常只有当两个指针指向同一个数组时才对两个指针相减。

两个指针相减得到的整数是这两个指针所指向的元素索引值之差。

例如有如下代码:

int a[5] = {10, 20, 30, 40, 50};

int *p1 = a;

int *p2 = &a[3];

int x = p2 - p1;

因为p1和p2位置如下:

所以表达式 p2 - p1的值是3

结语:指针算术运算是初学者感到比较困惑的问题,希望本文能对他们有所帮助。

作者简介:

张俊娟 ,汉族, 新疆昌吉奇台县人,一级讲师。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值