WAngLeYu 发表于 2023-3-30 10:14:19

帮忙解答一下这段代码的运行过程 关于指针和循环类型的

#include<stdio.h>
int main()
{char s[]="abaacda",*p,*q,ch='a';
    int n=0;
    for(p=q=s;*p!='\0';p++);
while(*q)
{
if(*q==ch)
{
    n++;
if(n==3)
{while(p>=q)
*(p+1)=*p--;
*q='H';
break;}
}
q++;
}
printf("%s",s);
}

jhq999 发表于 2023-3-30 10:45:53

*(p+1)=*p--;//越界了

WAngLeYu 发表于 2023-3-30 10:57:09

jhq999 发表于 2023-3-30 10:45


啊 怎么越界了啊

jhq999 发表于 2023-3-30 11:21:30

本帖最后由 jhq999 于 2023-3-30 11:28 编辑

WAngLeYu 发表于 2023-3-30 10:57
啊 怎么越界了啊
我搞错运算顺序了

WAngLeYu 发表于 2023-3-30 11:36:01

jhq999 发表于 2023-3-30 11:21
我搞错运算顺序了

{:5_104:}

jhq999 发表于 2023-3-30 11:46:27

WAngLeYu 发表于 2023-3-30 11:36


p先自减再运算左边的p+1

jhq999 发表于 2023-3-30 11:51:09

while(p>=q)
                {
                  *(p+1)=*p--;//有什么意义,自己等于自己
                }
页: [1]
查看完整版本: 帮忙解答一下这段代码的运行过程 关于指针和循环类型的