为什么结果是cde,s的值不是等于‘c'的地址吗?

{char *s="abcde"; s+=2; print("%s\n",s);}为什么结果是cde,s的值不是等于‘c'的地址吗?

s的值是指向‘c’没错,可是他指向‘cde’也没错啊。如果s看做是指向字符的指针,那么printf(“%c”,s)将会输出一个字符‘c’,如果你将s看作是字符串,那么printf(“%s”,s)输出的就是‘cde’。字符串是什么?字符串就是从从某个位置开始,遇到‘\0’就结束的一系列字符。