我正在尝试一些东西,发现了这个小奇怪的地方。使用下面的代码,它将输出“World”(每个字符分成每一行)。这是否意味着传递给函数的参数在内存中是连续的?
#include <stdio.h>
#include <string.h>
void mystrtst(char *s, char *t);
int main() {
mystrtst("Hello", "World");
}
void mystrtst(char *s, char *t) {
while(*s++);
for( ; *t ; s++, t++) {
printf("%c\n", *s);
};
}
最佳答案
您有指向存储在内存某些部分的 2 个字符串的指针。
您所看到的是未定义的行为。
不保证这两个字符串始终按照输出显示的方式存储。
关于用于传递参数的连续内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35359608/