当前位置:   article > 正文

C语言:*p++与*++p;(*p)++ 与 ++(*p)细讲_*++p+=*p++*2

*++p+=*p++*2

在这里插入图片描述
需要结合优先级进行分析,注意结合方向

*p++

假如 * p = 2;那么执行 b=*p++; 结果 b=2。因为 b=*p++ 相当于 b=*p; p++。即 p 是“先使用,后自增”。

#include<stdio.h>

int main(int argc, const char *argv[])
{
	int b,a[2] ={ 2,4};
	int *p = NULL;
	p = a;
	b = *p++;
	printf("b=%d  *p = %d\n",b,*p);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出:
在这里插入图片描述

*++p

假如 * p = 2;如果执行 b= * ++p; 结果 b=4。因为 b=*++p 相当于 p++; b=*p。即 p 是“先自增,后使用”。

#include<stdio.h>

int main(int argc, const char *argv[])
{
	int b,a[2] ={ 2,4};
	int *p = NULL;
	p = a;
	b = *++p;
	printf("b=%d  *p = %d\n",b,*p);
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

输出:
在这里插入图片描述

(*p)++

假如 * p = 2;如果执行 b= ( * p)++; 结果 b=2。因为 b=(*p)++相当于 先 b=*p; *p= *p+1。

#include<stdio.h>
int main(int argc, const char *argv[])
{
	int b,a[2] ={ 2,4};
	int *p = NULL;
	p = a;
	b = (*p)++;
	printf("b=%d  *p = %d\n",b,*p);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出:
在这里插入图片描述

++(*p)

假如 * p = 2;如果执行 b=++(*p); 结果 b=3。因为 b=++(*p)相当于 先 *p = *p+1; b = *p;

#include<stdio.h>
int main(int argc, const char *argv[])
{
	int b,a[2] ={ 2,4};
	int *p = NULL;
	p = a;
	b = ++(*p);
	printf("b=%d  *p = %d\n",b,*p);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/228612
推荐阅读
相关标签
  

闽ICP备14008679号