借鑒他人,自我學習
1.可以用數組輸出
返回值為指針形式,傳參為指針。返回一個地址
例如:
char *text(char *tmp)
{
return tmp;
}
int main()
{
printf("%s",text("ffffx"));
}
輸出的結果為ffffx
但是如果這樣寫
char *text()
{
char tmp[30] = "ffffx";
return tmp;
}
int main()
{
printf("%S",text());
}
這樣語法雖然沒有問題但是輸出結果沒有意義;因為tmp[30]是局部變量返回時雖然首地址沒有變,但是里面的值已經無意義。
tmp*定義的是一個全局變量。
char *text()
{
char *tmp = "ffffx";
return tmp;
}
int main()
{
printf("%S",text());
}
如果這樣的話就可以了因為字符串代表的十一個全局變量被存儲在一個地址中,而且地址被返回了,之后就算tmp被銷毀了,結果還是正確的。