5

重複の可能性:
C 配列では、なぜこれが正しいのですか? [5] == 5[a]

3["zdvnngfgnfg"];

4

3 に答える 3

8

と同等です

"zdvnngfgnfg"[3];

これは合法であり、「そのリテラルのアドレスを取得して追加する」ことを意味します3*sizeof(char)。とにかく効果がありません。

この非常によく似た質問も参照してください。

于 2009-09-21T09:45:37.803 に答える
6

arr[i] は *(arr+i) として解析され、*(i+arr) と記述できるため、i[arr]
"strngjwdgd" は、読み取り専用の場所に格納されている定数文字配列へのポインターです。
だからそれは動作します!!

于 2009-09-21T09:48:02.547 に答える
2

文字列literal(array)は、型のポインタに減衰しますchar*。次に、4番目の要素を取ります。

3["zdvnngfgnfg"] == "zdvnngfgnfg"[3]

配列の前に添え字を書くことができる理由は別の質問です:

C配列では、なぜこれが当てはまるのですか?

于 2009-09-21T09:49:11.123 に答える