因此,我将此示例代码作为练习,并且无法理解其工作原理。我运行它并使用一些打印语句我知道它从标准输入中获取一个字符串并生成字符串的较小版本,因此hello变为ello,然后是llo,然后是lo,然后是o。令我困惑的是源和目标如何添加1,因为它们的数据类型是字符指针。这段代码究竟有用吗?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
char* target = malloc(100*sizeof(char));
char* source = argv[1];
char tmp;
while ((*source) != 0) {
tmp = *source;
*target = tmp;
target = target + 1;
source = source + 1;
}
return 0;
}