大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

プログラミング言語C – 論理積、コンマ演算子

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2019/03/12
最終更新日:2019/03/12
カテゴリー:技術情報
タグ:

津路です。
引き続き、プログラミング言語C 第2版 ANSI規格準拠 K&R著(共立出版)を読んで、気になるところを書いています。
付録A 参照マニュアルの以下のページを取り上げます。
A7.14 論理的AND演算子

今回は、論理積から取り上げます。
条件文において、良く使う、&&演算子ですが、被演算子の型が違っても良いそうです。
ですが、算術型かあるいはポインタでなければならない。とあります。
ポインタであれば、例えば、ポインタの指す領域の存在を確認してから、中身を参照するとかに使えます。

ここで、結果の型はintですが、Microsoft docsを参照すると、boolだそうです。

A7.18 コンマ演算子
次に、コンマ演算子です。
関数呼び出しの中でよく使われます。 f(0, a, b) とか。
書籍では、f(a, (t=3, t+2), c) という例があります。

また、ANSI C言語辞典という書籍では、条件演算子を使ったこんな例もあります。
int a=10;
f(a, a>0 ? t=4,t+3 : 77, c); これは、a > 0 ならば 7が、0以下ならば 77 が投入されるということです。

変数初期化やprintfの例もあり、面白いです。
printf(“%s\n”,(“a”,”b”,”c”)); では、「c」が表示されます。
親切に形式が書いてあって、op1,op2, …. ここで、op1は順次式, op2は代入式
結果の値は、op2の値。

Wikipediaからコンマ演算子の初期化式サンプルを引いて、編集してコンパイル実行すると、

    上に戻る