[過去ログ] C言語なら俺に聞け 163 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
261
(1): (ワッチョイ d6f5-K4S3) 2024/09/24(火)19:39 ID:tv/lKhnI0(1/2) AAS
>>174
> char* foo = "hoge";
>
> のようなケースではポインタ foo は文字列リテラルを指してる

(単に端折っただけかもしれないけれど、)文字列リテラルに関してCには非常に込み入った事情(Rationale Rev. 5.10 6.4.5 冒頭-l.26, N1256 Annex J.5.5)があり、厳密に言えば foo は "hoge" によって初期化された無名の配列を指している(N1256 6.7.8-32)。

C99RationaleV5.10
外部リンク[pdf]:www.open-std.org
省9
262: 261 (ワッチョイ d6f5-K4S3) 2024/09/24(火)19:51 ID:tv/lKhnI0(2/2) AAS
>>158
件の意味論は 6.7.8-32 を介して 6.7.8-14,15 に帰結するように思われる一方で、文字列リテラルが 6.4.5-5 で自ら初期化した(やはり)無名の配列の代名詞だとすると 6.7.8-11 が適用されるという解釈も成り立ちそう。

char *gfoo1 = "hoge"; // (1)
char *gfoo2 = "hoge"; // (2)

void f() {
char *foo1 = "hoge"; // (3)
char *foo2 = "hoge"; // (4)
省4
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.414s*