C指针算术运算和关系运算

本文详细介绍了C语言中指针的算术运算和关系运算。指针加整数时,整数会根据指针类型调整,如float指针+3相当于+3*4。指针算术运用于数组和动态内存,指针减法得到两个指针间的元素个数。关系运算应用于相同数组中的指针,必须确保指针在有效范围内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针加一个整数,结果是另一个指针,问题是,这个新的指针指向哪里呢? 会是这种指针类型的内部指针吗?

其实,当一个指针和整数进行算术运算的时候,整数在执行加法运算前始终会根据类型大小进行调整,即整数值和“指针类型的大小”相乘,比如:float占据4字节,那一个float型指针+3, 这个调整就是原来的float型指针+ 3*4。

指针+3并不是3个字节,而是3个float的大小。

这样做的好处就是不依赖指针的类型,即一个指向char的指针,p+1就是指向下一个char,如果p指向float型指针,那p+1就是指向下一个float。

1、算术运算:

C指针的算术运算只限于2种形式:

(一)、指针 ± 整数

   适用于2种情况:

(1)指向数组中某个元素的指针。

          数组中元素存储于连续的内存位置中,后面元素的地址大于前面元素的地址,因此,对指针+1使它指向下一个元素,+5使其向右移动5个元素的位置;-3就是使它左移3个元素的位置。

 当对指针执行加法或者减法之后如果指针所处的位置     在数组第一个元素前    或者   数组最后一个元素的后面,那其效果就是未定义的。

但指针指向最后一个元素后面的那个位置是合法的,但不能间接访问。

示例:初始化数组,将数组所以元素都初始化为0。

#define N_VA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值