指针的运算系列(1):指针加减整数; 指针的比较大小

对于指针,选择大家或多或少的都有着些许见解和认识!大部分初步了解指针了已经,要不然,还不注重指针的基础知识??也可以参考笔者前面几篇文章内容,根据书本知识来学习参考!好高骛远的看指针的运算呢??

指针的运算!

指针的(+ , -)加减整数运算

对于指针的运算应用较为广泛,但是,对于加减乘除四则运算,在指针这儿,我们却只见过指针的加减整数运算,并没有涉及指针的乘除整数运算,原因很简单:指针的本质其实还是一个地址,对地址进行乘除整数?怎么可能得出来正确的答案呢??

下面笔者在指针,*(解引用操作符)之间,详解指针的加减整数运算!

//按顺序输入各组元素
#include <stdio.h>
int main()
{
	double arr[5] = { 0 };
	double* p = arr;

	int i = 0;
	for (i = 0; i < 5; i++)
	{
		arr[i] = i + 1;             //在每次循环的基础上,将元素赋值为i+1

		printf("%lf ", *(p + i));
	}
	return 0;
}

在本段代码中,   double arr[5] = { 0 };    double* p = arr;         定义了double类型的arr[5]数组,因此指针p指向的也应该为double型,所以定义为 :  double* p = arr;

对于下面简短代码,在笔者博客前文略有涉及,描写也算较为全面,但是对于一些不愿意找的读者而言,笔者还是再来进行简单描写一边吧!

     for (i = 0; i < 5; i++)
	{
		arr[i] = i + 1;             //在每次循环的基础上,将元素赋值为i+1

		printf("%lf ", *(p + i));
	}

在这个代码片段中,用for循环,实现每次循环下来 i 的值每次都增加1,然后在每次循环时候都用  i +1赋值给数组arr[];最后输出时候,用printf("%lf ", *(p + i));在这里,p+i指:每次循环数组地址都往后走i步,找到位于arr[i]上的元素位置!因为i的取值在  :   i=0;i<5;i++   范围内,因此也不担心越界问题!最后在通过  * (解引用操作符)的使用,最后通过地址找到该元素的大小数值并打印出来!

因此最后的打印结果为:

 指针的比较大小

对于刚开始接触指针的大小比较时候,笔者也是一脸迷茫,但是,当慢慢学习接触下来发现还是挺有必要的!

 下面笔者用一个代码片段在进行讲解一下!

#include <stdio.h>

#define n_ualue 5

int main()
{
	float valuer[n_ualue];
	float* vp;

	//指针的加减整数,指针的关系运算
	for (vp = &valuer[0]; vp < &valuer[5];)
	{
		*vp++ = 0;
		//printf("%f ", *vp);
	}
	return 0;
}

在这里面涉及到的内容由如下解释:

 对于*vp ++而言;  ++的优先级高于:*   因此先进行++选项,但是对于该:  *vp ++  而言,为后置++,因此又有表达式的值仍为  vp;

在for循环中: for (vp = &valuer[0]; vp < &valuer[5];)    这个代码,不建议大家进行使用,当然笔者用该段代码仅仅是供大家参考:*vp ++  的用法而已!

因此得出来:

*vp++   跟    *(vp++)意思一样

              (*vp)++意思不一样 : (*vp)指:先跟vp解引用,在用++

我们大家都知道:随着数组下标由低到高的增长,由地址到高地址!

因此:上述代码:在for循环中:

for (vp = &valuer[0]; vp < &valuer[5];)
	{
		*vp++ = 0;
		//printf("%f ", *vp);
	}

可以改写为:

for (&valuer[n_ualues - 1]; vp >= &valuer[0]; vp--)
{
	*vp = 0;
}

到此为止,对于指针的运算系列(1):指针加减整数; 指针的比较大小,已经完美结束,读者要是有疑惑,请联系笔者进行删改!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念君思宁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值