05/04/04 01:08:07
>>360
定数(リテラル)の寿命はプログラムの開始から終了まで。
関数内で宣言されたauto変数の寿命は、関数の開始から終了まで。
char *func1(){
return "a"; /* "a" を指すポインタを返している */
}
char *func2(){
char *s = "a"; /* ポインタ s を "a" を指すポインタで初期化 */
return s; /* ポインタ s の値、つまり "a" を指すポインタを返している */
}
つまり、どっちも同じ。
リテラルはいつでもどこからでも参照出来るので、戻り値を使ってても大丈夫。