#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *ptr1="abcdef";
ptr1 = ptr1 +(strlen(ptr1)-1);
printf("%c",--*ptr1--);
printf("%c",--*--ptr1);
printf("%c",--*(ptr1--));
printf("%c",--*(--ptr1));
printf("%c",*ptr1);
return 0;
}
上面的代碼會引發分段錯誤錯誤。有人能幫我理解背後的原因嗎?如何在C代碼中找到分段錯誤?
原因是蹩腳的,不可讀的代碼,可能會引發未定義的行爲。 –
順便說一句,它甚至不會編譯。 –
請解釋我breafly –