#include <stdio.h>
#include<string.h>
int main(void) {
int i;
char* mystr = "Dream of China";
for (i = 2; i < strlen(mystr) - 2; i++)
{
printf("%c", (mystr + i));
};
return 0;
}
输出结果是Dream of China*
为什么为什么呢这是
#include <stdio.h>
#include<string.h>
int main(void) {
int i;
char* mystr = "Dream of China";
for (i = 2; i < strlen(mystr) - 2; i++)
{
printf("%c", (mystr + i));
};
return 0;
}
输出结果是Dream of China*
为什么为什么呢这是
解释如下:
mystr是字符串的首地址,在for循环中,i从2开始遍历,遍历的长度到strlen(mystr) - 2,也就是最后的两个 * 字符不会被显示。
mystr + 0对应第一个字符 *
mystr + 1对应第二个字符 *
mystr + 2对应第三个字符 *
mystr + 3对应第四个字符 *
mystr + 4对应第五个字符 *
mystr + 5对应第六个字符 D
mystr + 6对应第七个字符 r
mystr + 7对应第八个字符 e
... 以此类推
在for循环中从i = 2开始循环输出(也就是从第3个*开始输出),直到倒数第二个字符为止(最后二个字符不输出)。
这时候的输出结果是***Dream of China***