*s[2] = {"****","****"}; while(*s[1] = '\0') { printf("%s\n",s[0]+strlen(s[1])-1); s[1]++; }

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 08:00:24
*s[2] = {

*s[2] = {"****","****"}; while(*s[1] = '\0') { printf("%s\n",s[0]+strlen(s[1])-1); s[1]++; }
*s[2] = {"****","****"}; while(*s[1] = '\0') { printf("%s\n",s[0]+strlen(s[1])-1); s[1]++; }

*s[2] = {"****","****"}; while(*s[1] = '\0') { printf("%s\n",s[0]+strlen(s[1])-1); s[1]++; }
char *s[2] = {"****", "****"};
s是一个字符指针数组,有2个元素,每个指针都指向字符串****
while( *s[1] != '\0' )
{
printf("%s\n", s[0] + strlen(s[1]) - 1);
s[1] ++;
}
s[1]是char *类型的,指向第2个****的第一个char.
开始时,strlen(s[1]) = 4,printf输出的是s[0] + 3,所以是一个*再换行.
然后s[1]++,s[1]指向第二个****的第二个char
于是strlen(s[1]) = 3,printf输出的是s[0] + 2,所以是两个*再换行
……
3个*换行
4个*换行
然后s[1]指向****后面的NUL字符,退出循环
所以输出是
*
**
***
****