我正在尝试一些东西,发现这个小奇怪。使用下面的一段代码,它将输出“世界”(每个字符分解成每行)。这是否意味着传递给函数的参数在内存中是连续的?连续内存传递参数
#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);
};
}
也许这篇文章可以帮助你[参数变量存储在内存?](http://stackoverflow.com/questions/16304705/where-are-parameter-variables-stored-in-memory)。 – Frodo
在字符串文字中,字符是连续存储的。 –
字符串不传递给函数,它们的地址是。由于它们是字符串文字,它们可能驻留在内存中的只读部分。在该部分中它们是否连续不是由c-标准规定的,即你正在调用未定义的行为。 – EOF