摘 要 指针是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
结语:指针算术运算是初学者感到比较困惑的问题,希望本文能对他们有所帮助。
作者简介:
张俊娟 ,汉族, 新疆昌吉奇台县人,一级讲师。