我正在嘗試一些東西,發現這個小奇怪。使用下面的一段代碼,它將輸出「世界」(每個字符分解成每行)。這是否意味着傳遞給函數的參數在內存中是連續的?連續內存傳遞參數
#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