【原创】【指针】*p++与*++p不同的执行顺序

【核心】*※p++ = *※(p++) ≠ ※++p =※(p+=1) ※即** \*

【易混关注】 ※(p++) 与※(p+=1) →二者执行顺序不同,区分!

【说明】※p++ =※ (p++)都是先执行p※,再p++(即先取值,再指针后移);而 ※ ++p和※(p+=1)是先指针后移,再取值

·代码调试如下

c 复制代码
#include<stdio.h>

int main()
{
	int j,a[]={1,3,5,7,9,11,13,15};
	int *p=a+3; //p指向a[3]的地址,且*p=7。注意下面运行某句时把其他注释掉
	
//	printf("*p++=%d\n",*p++); //*p++=7 【解释】*p++和*(p++)等价,都是先执行*p取值,再++指针后移;值均为7 
//	printf("*(p++)=%d\n",*(p++)); //*(p++)=7   
//	printf("*(p+=1)=%d\n",*(p+=1)); //*(p+=1)=9 【解释】*(p+=1)和*++p等价,都是先p后移,再取值;值均为9 
	printf("*++p=%d\n",*++p); //*++p=9	
//  printf("++*p=%d\n",++*p); //++*p=8 【解释】原来的*p整体是int型常数8,++*p变为9
	return 0;
}
相关推荐
多弗朗皮卡丘10 小时前
C语言梦开始的地方7:函数
c语言·开发语言
Herbert_hwt14 小时前
C语言零基础入门:循环控制与数据类型详解
c语言·数据结构·算法
Tyler_TXZ16 小时前
C++C语言之——二叉树
c语言·开发语言·数据结构·c++·二叉树
小羊先生car16 小时前
F429-HAL-RS485(回环/双机实验)(2026/8/16)
c语言·单片机·嵌入式硬件·软件构建
白狐_79818 小时前
408 数据结构|线索二叉树两题详解:先序线索化后的空链域 + 中序前驱/后继判断
c语言·数据结构·链表
GeekZHR19 小时前
C语言指针进阶补充6:动态内存管理、mem系列内存函数、复杂指针声明,一次补齐指针的“三大盲区“
java·c语言·算法·指针
caimouse19 小时前
ReactOS 图形系统分析(43):API 裁剪 — cliprgn.c
c语言·开发语言
caimouse20 小时前
ReactOS 图形系统分析(40):文本子系统 — text.c
c语言·开发语言
caimouse20 小时前
ReactOS 图形系统分析(36):位块传输 — bitblt.c
c语言·reactos
Tyler_TXZ21 小时前
C++C语言之——树
c语言·c++·算法·