Q&A
解決済
1回答
1555閲覧
総合スコア31
C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。
0グッド
0クリップ
投稿2014/12/22 04:29
0
char foo[2][8]; ... if ((long*)foo[0] > 0) { ... } //上記できる(実際に動いているがバグがあるかもしれない) //下記はコンパイルエラー (long*)foo[0] = (long*)foo[0] + (long*)foo[1];
charは1Byte longは8Byte
なぜコンパイルエラーになるのでしょうか
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答1件
ベストアンサー
配列の角カッコのほうが、キャスト演算子より優先順位が高いので、(long*)foo[0]はfoo[0]をlong*にキャストしたもの、と解釈されます。
(long*)foo[0]
foo[0]
long*
そして、ポインタで可能な算術演算は、
投稿2014/12/22 04:34
総合スコア146853
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
[C] 配列処理
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。