- 1 名前:デフォルトの名無しさん mailto:sage [03/11/09 15:37]
- いろんなスレが乱立していますが、統合的なスレッドがないので立てました。
質問もOK 関連スレ C#って死滅する理由がないよね! Part4 pc2.2ch.net/test/read.cgi/tech/1042464104/ C#最強伝説 pc2.2ch.net/test/read.cgi/tech/1061208152/ C#とJava、どっちをおぼえればいいの? pc2.2ch.net/test/read.cgi/tech/1006715468/ C#Builder Professional 質問箱 pc2.2ch.net/test/read.cgi/tech/1062433418/ 関連リンク dir.yahoo.co.jp/Computers_and_Internet/Software/Programming_Tools/Programming_Languages/C_Sharp/
- 361 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 01:05:29 ]
- 規格ではどうか忘れたけど、たいがいいけるはず。
どうしても心配ならstatic const char ret_str[] = "a";とかすれば? あとchar *じゃなくてconst char *を使え。
- 362 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 01:08:07 ]
- >>360
定数(リテラル)の寿命はプログラムの開始から終了まで。 関数内で宣言されたauto変数の寿命は、関数の開始から終了まで。 char *func1(){ return "a"; /* "a" を指すポインタを返している */ } char *func2(){ char *s = "a"; /* ポインタ s を "a" を指すポインタで初期化 */ return s; /* ポインタ s の値、つまり "a" を指すポインタを返している */ } つまり、どっちも同じ。 リテラルはいつでもどこからでも参照出来るので、戻り値を使ってても大丈夫。
|

|