当C语言中的指针执行数组元素时,C语言允许对指针进行算术运算。
指针运算
C语言支持3种格式的指针算术运算,包括指针加上整数,指针减去整数和两个指针相减。同时还可以用关系运算符进行指针比较。
- 指针
p
加上整数j
表示指针向后移动j
个单位(每个单位大小为指针p
的类型所占的字节数),指向p
原先指向的元素后的第j
个元素。若p
指向数组a[i]
,则p+j
指向a[i+j]
。 - 指针
p
减去整数j
表示指针向前移动j
个单位,指向p
原先指向的元素前的第j
个元素。若p
指向数组a[i]
,则p-j
指向a[i-j]
。 - 两个指针相减,得到的是指针之间元素的个数。若指针
p
指向a[i]
,指针q
指向a[j]
,则p-q
等于i-j
。 - 指针的比较依赖于指针所指向的两个元素的相对位置。若指针
p
指向a[i]
,指针q
指向a[j]
,p
和q
的比较结果由i
与j
的大小决定。
因此适用于指针运算的运算符包括算术运算符+
、-
,赋值运算符和复合赋值运算符(=
,+=
,’-=’,++
,--
)和所有的关系运算符。
/**************************************
* pointer_5.c *
* *
* C语言中的指针运算 *
**************************************/
#include <stdio.h>
#define N 10
int main()
{
int a[N], sum, *p;
int i = 0;
printf("请输入%d个整数:", N);