我是C新手,我想知道下面两个代码片段之间的区别。当我尝试执行第一个代码时,它工作得很好,但当我运行第二个代码时,它会给我分段错误。这种行为的原因是什么?
printf("%c\n",*strptr++);
printf("%c\n",*(strptr+i));
这是下面的代码。
#include<stdio.h>
int main(void)
{
char str[100]="My name is Vutukuri";
int i=0;
char *strptr;
strptr=str;
while(*strptr != '\0')
{
printf("%c\n",*strptr++);
//printf("%c\n",*(strptr+i));
//i++;
}
return 0;
}
最佳答案
完全不同。
第一个片段在strptr
处打印字符,然后将strptr
递增一次。
第二个片段打印strptr + i
处的字符。