【发布时间】:2020-05-02 04:45:32
【问题描述】:
我不明白第 5 行中“单词”这个词是如何打印的。有人可以解释一下吗?
#include <stdio.h>
int main(void) {
char str[50] = "hello\0 worl\bd";
printf("\n %s ",str);
printf("%s \n",str+str[4]-*str);
return 0;
}
【问题讨论】:
-
\b执行退格。所以d会覆盖l。 -
而
str+str[4]-*str就是str+7。 -
@Blaze 你能解释一下原因吗?
-
*str是'h',str[4]是'o','o' - 'h'是7。
标签: c string obfuscation