C - C言語で四則演算するプログラムの一部分の意味がわからないです。|Teratail
四則演算のみの電卓 - プログラマ専用Sns ミクプラ
直接メンバアクセス -> 間接メンバアクセス typeid() 実行時型情報 (C++のみ) const_cast 型変換 (C++のみ) dynamic_cast reinterpret_cast static_cast 前置インクリメント・デクリメント 右から左 + - 単項プラスとマイナス! ~ 論理否定とビット否定 ( type) 型変換 * 間接演算子 (デリファレンス) & アドレス sizeof 記憶量 new new[] 動的記憶域確保 (C++のみ) delete delete[] 動的記憶域解放 (C++のみ). 四則演算のみの電卓 - プログラマ専用SNS ミクプラ. * ->* メンバへのポインタ (C++のみ) * /% 乗算・除算・剰余算 加算・減算 << >> 左シフト・右シフト < <= (関係演算子)小なり・小なりイコール > >= 大なり・大なりイコール ==! = 等価・非等価 ^ | && || c? t: f 条件演算子 右から左 ( throw は結合しない) = += -= 加算代入・減算代入 *= /=%= 乗算代入・除算代入・剰余代入 <<= >>= 左シフト代入・右シフト代入 &= ^= |= ビット積代入・ビット排他的論理和代入・ビット和代入 throw 送出代入 (例外送出: C++のみ), コンマ演算子 演算子の結合性 みなさん、表に書いてある『 結合性 』ってなんだと思いますか?例えば以下のような計算式があったとします 1 + 2 + 3 この計算をするとき、このように考えませんか?
整数の四則演算 - C99対応のC言語入門 - Perl元気塾のC言語講座
*/ printf ( "a =%d, b =%d\n", a, b); return 0;} $ gcc increment_and_decrement_operators. c $ a a = 0, b = 0 a = 1, b = 1 a = 0, b = 0 a = 1, b = 0 a = 0, b = 0 a = - 1, b = - 1 a = 0, b = 0 a = - 1, b = 0 これらの代入文は,一般的には以下のように記述できます. インクリメント,デクリメント 一般的な記述 b = ++a; a = a + 1; b = a; b = a++; b = a; b = --a; a = a - 1; b = a--; b = a; a = a - 1; 一般的な記述をすると上記のように2つの文になってしまいます. そこで,インクリメント演算子とデクリメント演算子を利用することで,a[i++]やb[--j]等のように式しか記述できない部分に記述できます. ビット演算子とシフト演算子 ビット演算子とシフト演算子は,こちらの記事で深掘りしています. 【C言語】ビット演算子とシフト演算子の使い方 こういった悩みにお答えします. こういった私から学べます. 目次1 ビット演算子2 &:ビット毎のAND(論理積)3 |:ビット毎のOR(論理和)4 ^:ビット毎のXOR(排他的論理和)5 ~... 代入演算子 代入演算子は,変数に(演算結果を含む)値を代入するために利用される演算子です. 実際のコードでは,以下のように自分自身に何かの演算をするという記述がよく出てきます. この例では,1つの式の中で同じ変数が2度出てきます. また,変数名が長いと以下のようになります. current_thread [ current_cpu] = current_thread [ current_cpu] + 0x10; こうするとキー入力も大変ですし,間違える(タイポする)可能性が高くなります. そこで,C言語では簡単に記述できる代入演算子が用意されています. 上記の文は,以下のように書くことができます. current_thread [ current_cpu] += 0x10; これならタイプ数が減り,間違える可能性が低くなります.これが代入演算子のメリットです.
18: p = &x; 19: *p = 10; ポインタpの指す値に10を代入します.ポインタpには,18行目で変数xのアドレスが代入されていますから,これはx=10;と等価になります. 20: printf( "x=%d y=%d z=%d\n", x, y, z); 変数x, y, zの値を表示します. 画面出力: x=10 y=20 z=30 ・・・・・③ 注目してもらいたいのはプログラム9,13行目が同じz= x * *p;というコーディング(プログラム書き方)なのに,実際に実行しているのはz=x*x;とz=x*yであるという点です.同じことが16,19行目にもいえます.配列などで繰り返し計算を行うとき,ポインタを使うとコンパクトなわかりやすい(? )プログラミングができます.またポインタの変更および計算には,実際のコピーや移動を伴わない場合が多いので,計算速度の速いプログラミングができます.