s1 = &str1[50]这种写法编译是通过的,但不是你要的效果s1 = &str1[50],是将s1字符指针指向str数组的第51个元素,但str总共才50个元素,所以编译可以通过,但一用s1就会死。改成 s1 = str1;就可以了。这样s1就指向str1数组的首地址了同理,下一样也要类似修改