一般的な演算


四則演算子 ( +、-、*、/、% )
コード 結果
加算演算子 + printf("%d", 1+1); 2
減算演算子 - printf("%d", 1-1); 0
乗算演算子 * printf("%d", 2*2); 4
除算演算子 / printf("%d", 4/2); 2
剰余演算子 % printf("%d", 3%2); 1

代入演算子 ( =、+=、-=、*=、/=、%= )
C言語における =(イコール) は、数学に於けるそれとは全く別物である。
Cでは、右辺の値を左辺に代入する という意味である。
四則演算子と組み合わせると、左辺と右辺で演算し、その結果を左辺に代入する。
コード 結果
単純代入演算子 = int a=0;
printf("%d", a=1);
1
加算代入演算子 += int a=0;
printf("%d", a+=1);
1
減算代入演算子 -= int a=0;
printf("%d", a-=1);
-1
乗算代入演算子 *= int a=2;
printf("%d", a*=2);
4
除算代入演算子 /= int a=4;
printf("%d", a/=2);
2
剰余代入演算子 %= int a=3;
printf("%d", a%=2);
1

増減演算子 ( 増分演算子(++)、減分演算子(--) )
値なら、1 増減し、ポインタなら 1 前後する。
インクリメントデクリメント というのが一般的である。

次の例では、数値の前に増減演算子を付ける事で、出力前に演算されるので、演算後の値が出力される。
コード 結果
int i=0;
printf("%d\n",++i);
1
int i=0;
printf("%d\n",--i);
-1

ところが次の例では、数値の後に増減演算子を付ける事で、出力後に演算されるので、演算前の値が出力される。
コード 結果
int i=0;
printf("%d\n",i++);
0
int i=0;
printf("%d\n",i--);
0

sizeof (sizeof(...))
括弧内の型、オブジェクトのサイズを、バイト単位で返す。

次の例では、int型のサイズと、int型の変数 i のサイズを出力する。
コード 結果
int i;
printf("%d\n%d\n", sizeof(int), sizeof(i));
4
4

条件演算子 ( ? : )
if (…){…}else{…} と似たような機能である。

? 分岐1 : 分岐2
上記の構文で、式が真であれば分岐1、偽であれば分岐2 が演算結果となる。

次の例では、char型の変数 c の値は 'a' だが、'b' ではないので '?' と出力する。
コード 結果
char c = 'a';
printf("%c\n", (c=='b')?'b':'?');
?

© GPU (Game Programming Unit) <script><!-- var fc2footerparam = 'charset=' + encodeURIComponent(document.charset ? document.charset : document.characterSet) + '&url=' + encodeURIComponent(document.location) + '&service=0&r=' + Math.floor(Math.random()*99999999999); var fc2footertag = "//vip.chps-api.fc2.com/apis/footer/?" + fc2footerparam; var script = document.createElement('script'); script.src = fc2footertag; script.charset = "UTF-8"; script.async = true; document.getElementsByTagName('head')[0].appendChild(script); //--></script> <!-- FC2, inc.--> <img src="//media.fc2.com/counter_img.php?id=50" style="visibility:hidden" alt="inserted by FC2 system" width="0" height="0"> <!-- FC2, inc.-->