セクション17代入演算子と式

1.単純な代入式

#include <stdio.h>
#include <math.h>
int main()
{
    
    
	int a, b;
	a = 3;
	double c, d;
	b = a * a;
	c = 3.75;
	d = sin(b) + 1;
}

2.割り当て中のデータ型の自動変換

左の値 正しい値 変換方法 例えば
整数変数 浮動小数点データ 浮動小数点数は小数部分を破棄します int a = 4.38;
浮動小数点変数 整数データ 値は変更されず、指数形式で保存されます double = 375;
フロート変数 ダブルデータ 精度の低下、オーバーフローの可能性 フロートf = 2.8e59
符号なし変数 同じ長さの署名済みデータ そのままコピーしますが、元の符号ビットも値部分として扱われます unsigned int u = -32765;
#include <stdio.h>
int main()
{
    
    
	int i = 3.123456789;
	double d = 3;
	float f = 3.123456789123456789;
	unsigned u1 = 1234;
	unsigned u2 = -1234;
	printf("i=%d\n", i);
	printf("d=%f\n", d);
	printf("f=%f\n", f);
	printf("u1=%u\n", u1);
	printf("u2=%u\n", u2);
}
输出结果及解析:
i=3           /舍弃小数部分
d=3.000000    /整数转为小数存储和输出
f=3.123457    /精度降低
u1=1234       /值未变
u2=4294966062 /符号位当数值处理

3.複合代入演算子

#include <stdio.h>
int main()
{
    
    
	int a = 9;
	a += 3; printf("%d\n", a); a = 9;
	a -= 3; printf("%d\n", a); a = 9;
	a *= 3; printf("%d\n", a); a = 9;
	a /= 3; printf("%d\n", a); a = 9;
	a %= 3; printf("%d\n", a); a = 9;
}
输出结果:
12
6
27
3
0

複合代入演算子の利点
①プログラムの簡素化
②効率の向上
4.代入式とその値
代入
a = 3;
b + = 6.32;
代入式:
a = 3
b + = 6.32

 #include <stdio.h>
int main()
{
    
    
	int a, b, c;
	printf("%d\n", (a = 5));
	printf("%d\n", (b = (c = 6)));
	printf("%d %d %d\n", a, b, c);
}
5
6
5 6 6

5.割り当て式の評価

組み合わせ方法:右から左へ

a=(b=5)
a=b=c=5
a=5+(c=6)
a%=(n%=2)
printf("%d",(j=i++);
(a=3*5)=4*3
a+=a-=a*a

6.セルフテストをクリックします

おすすめ

転載: blog.csdn.net/m0_51439429/article/details/114704910