6÷2(1+2)の答え。
■ このスレッドは過去ログ倉庫に格納されています
0665132人目の素数さん
2012/08/31(金) 14:29:08.20()演算子は3つの演算をこなす。キャスト、関数呼出し、演算順位の変更の
3つ。キャストは変数の型を変換するもの、
int i;
double d;
i = 5;
d = (double)i;
と書けばiに格納された整数値5が浮動小数点数値5.000000となって変数d
に格納される。関数呼出しは、
d = func (i);
と書けば関数funcが引数iを伴って呼び出されその返り値が変数dに格納される。
もうひとつは演算の優先順位の変更。*演算子は+演算子よりも優先順位が
高いので 2*3+4 と書けば値は10になる。2*(3+4)と書けば()演算子の方が
*演算子よりも優先順位が高いので値は14となる。
複数の演算子が同じ優先順位を持つ場合がある。C言語では*と/は同じ
優先順位、+と-は同じ優先順位を持つ。
1-2+3-4+5-6+7-8+9-10
という式は端から順に計算されるが、この場合右導出か左導出かによって
結果が変わってくる。
(((((((((1-2)+3)-4)+5)-6)+7)-8)+9)-10) の結果は-5
(1-(2+(3-(4+(5-(6+(7-(8+(9-10))))))))) の結果は-1
C言語では括弧を省略した場合は前者の結果となる。
■ このスレッドは過去ログ倉庫に格納されています