C语言问题,第8行,(*p++!='+')中*p++的意思是*(p++),这样不就判断第二个字符了吗?

#include<ctype.h>
#include<assert.h>
intmy_atoi(const char*p){
assert(p!=NULL);
bool neg_flag=false;//符号标记
int res=0;//结果
if(p[0]=='+'||p[0]=='-')
neg_flag=(*p++!='+');
while(isdigit(*p)) res=res*10+(*p++-'0');
return neg_flag?0-res:res;
}
最新回答
——_曾说过爱我

2024-10-13 10:49:15

在执行(*p++!='+')语句时,p的值还没有增一,这条语句过后,p的值才为p+1
你是我的小小星晨★

2024-10-13 10:16:38

p++返回原先的p(p[0])而后指针增加1