指针运算问题
我编译运行下列代码遇到几个问题,麻烦哪位大虾帮忙看看#include <stdio.h>
main()
{
int i;
char *s[]={"test\n","again","\n"}
for(i=0;*(s+1)!="\n";i++)
printf("%s\n",*(s+i));
}
编译运行后输出:
test
again
Segmentation fault(core dumped)
如果把for循环中的*(s+1)改成*(s++),编译不能通过,这是其中一个问题
另外为什么这段代码会有Segmentation fault(core dumped)错误
其次,如果我直接定义一个char指针,如char *s=“test”;,该指针不能进行+1或者++操作
我理解字符指针是可以进行++或者+1操作的,起原理为,将该指针指向的字符往后偏移一个char类型长度的地址
我的这段代码能进行+1操作,不能进行++操作,实在不能理解,我使用的编译器版本是gcc 4.4.5
望详解,多谢!