- C言語なら俺に聞け 143
587 :デフォルトの名無しさん (ワッチョイ 697f-GQwd)[sage]:2017/12/01(金) 06:50:45.43 ID:NXDNhmZv0 - 宣言とか、演算子出てこないことぐらいあるだろ
初期化子つきの宣言に出てくる=が代入演算子だとでも思ってんのか?
|
- C言語なら俺に聞け 143
618 :デフォルトの名無しさん (ワッチョイ 697f-GQwd)[sage]:2017/12/01(金) 20:27:16.42 ID:NXDNhmZv0 - >>615
初期化子なしは、不定値で初期化するって意味だと納得することにしてるわ 一応、初期化の説明に含まれてるし。。。 つーことで、>>586とかには演算子のオペランドでないこともあるって理解してもらえたかな 良かった良かった
|
- C言語なら俺に聞け 143
622 :デフォルトの名無しさん (ワッチョイ 697f-GQwd)[sage]:2017/12/01(金) 21:39:28.94 ID:NXDNhmZv0 - >>620
ん? 配列型を持つ左辺値は特定のケースを除いてポインタ型に変換されるという 規格に明記してある話を理解してもらえればそれで十分だよ? 初期化子には演算子が含まれないこともあるって理解できたんだよね なら、それで良いよ
|
- C言語なら俺に聞け 143
625 :デフォルトの名無しさん (ワッチョイ 697f-GQwd)[sage]:2017/12/01(金) 22:00:29.26 ID:NXDNhmZv0 - >>623
そりゃ、>>570のconvertedだろ sizeof、&、配列の初期化に用いられる文字列リテラルを除いて、配列型をポインタ型に変換する。それはもはや左辺値ではない。 の変換
|
- C言語なら俺に聞け 143
626 :デフォルトの名無しさん (ワッチョイ 697f-GQwd)[sage]:2017/12/01(金) 22:05:59.37 ID:NXDNhmZv0 - もしかしてarr自体がint*型を持つというアホな解釈を擁護してるとでも思われてたの?
それは>>560自身も、>>579で式中に現れた場合のことでしたって弁明してるでしょ それとも arr; という識別子名だけの単文があったとき、arrがポインタ型に変換されないと思ってる? 左辺値なんだから、当然変換されるよ
|
- C言語なら俺に聞け 143
629 :デフォルトの名無しさん (ワッチョイ 697f-GQwd)[sage]:2017/12/01(金) 22:49:05.07 ID:NXDNhmZv0 - 6.3.2.1 Lvalues, arrays, and function designators
An lvalue is an expression with an object type or an incomplete type other than void 6.8.3 Expression and null statements expression-statement: expressionopt ; arr;は式文、arrは式(左辺値) よって、>>570の規則に従って変換される
|
- C言語なら俺に聞け 143
633 :デフォルトの名無しさん (ワッチョイ 697f-GQwd)[sage]:2017/12/01(金) 23:07:47.82 ID:NXDNhmZv0 - >>630
ポリシーとかじゃなくて規格の話をしてくれない? 配列型の左辺値は特定の場所以外で現れた場合に、変換されるという規格なの 演算子を伴わない場合は変換されないというのなら、その規格を明示して 左辺値ですらないというのであれば、その根拠となる規格を示して 人に説明求める割に、自分の論拠が想像ってのはどうかと思うよ
|