C言語漫談(二)
6337 ワード
一.ブール型
なお、C 89にはブールタイプは存在せず、C 99にのみ存在する.CエンジニアリングはC 89をサポートし、OCエンジニアリングはC 99をサポートします.
1.2つの数値:bool true(真)false(偽)C言語BOOL YES(真)NO(偽)OC言語
2.真と偽の表示C言語が0でないことを真0とする偽OC言語YESを1 NOと定義し0とする
3.作用主に分岐文とループ文の判断例に用いられる
二.かんけいえんざん
関係演算子1.2つの数の比較に使用します.2.関係演算子の演算結果:真偽.BOOLタイプ変数を使用して結果を受け入れます.3.関係式:定数、変数、および関係演算子からなる.例:
三.論理演算子
論理演算子:1.論理と論理または論理非2.論理演算の結果は2種類ある-真偽.通常BOOL変数で受信.3.論理式:定数、変数、論理演算子で構成されます.*論理と&&形式:式1&&式2の演算規則:(1)式1を先に実行し、式2を実行する.(2)式1と式2の結果が同じ真であるこそ真であり、偽である.(3)短絡現象:式1の結果が偽であると式2を実行しない.例を挙げる
*論理または||形式:式1||式2の演算規則(1)式1を先に実行し、式2(2)式1と式2の結果が同じであることが偽であり、真である.(3)短絡現象:式1が真であれば式2を実行しない.例を挙げる
*論理的非!(1)逆演算をとる.(2)演算規則:真偽に対して逆
最後に、コンテンツ演算子の優先順位演算子>リレーショナル演算子>論理演算子>割り当て演算子の例に注意します.
なお、C 89にはブールタイプは存在せず、C 99にのみ存在する.CエンジニアリングはC 89をサポートし、OCエンジニアリングはC 99をサポートします.
1.2つの数値:bool true(真)false(偽)C言語BOOL YES(真)NO(偽)OC言語
2.真と偽の表示C言語が0でないことを真0とする偽OC言語YESを1 NOと定義し0とする
3.作用主に分岐文とループ文の判断例に用いられる
BOOL a1 = YES;
BOOL a2 = NO;
printf("a1=%d",a1);
printf("a2=%d",a2);
BOOL a3 = YES;
BOOL a4 = NO;
printf("%d %d",a3,a4);
二.かんけいえんざん
関係演算子1.2つの数の比較に使用します.2.関係演算子の演算結果:真偽.BOOLタイプ変数を使用して結果を受け入れます.3.関係式:定数、変数、および関係演算子からなる.例:
BOOL a1 = 5 > 3;// YES
printf("%d",a1);
BOOL a2 = 5 < 3;// NO
printf("%d",a2);
// , , BOOl
int age1 = 0, age2 = 0;
scanf("%d %d",&age1,&age2);
BOOL a = age1 > age2;
printf("%d",a);
// , , BOOL
int a1 = 0,a2 = 1, a3 = 2;
BOOL a4 = a1 > a2 >a3;
printf("%d",a4);
// ,
BOOL r1 = 5 >= 5;//
printf("%d",r1);
BOOL r2 = 6 <= 1;
printf("%d",r2);
// == !=
BOOL r3 = 7 == 8;
BOOL r4 = 29 != 29;
printf("%d %d",r3,r4);
// :==( ),
//=( )
三.論理演算子
論理演算子:1.論理と論理または論理非2.論理演算の結果は2種類ある-真偽.通常BOOL変数で受信.3.論理式:定数、変数、論理演算子で構成されます.*論理と&&形式:式1&&式2の演算規則:(1)式1を先に実行し、式2を実行する.(2)式1と式2の結果が同じ真であるこそ真であり、偽である.(3)短絡現象:式1の結果が偽であると式2を実行しない.例を挙げる
// , , . BOOL
int a = 10,b = 20;
BOOL r1 = (a3);
printf("%d",r1);
*論理または||形式:式1||式2の演算規則(1)式1を先に実行し、式2(2)式1と式2の結果が同じであることが偽であり、真である.(3)短絡現象:式1が真であれば式2を実行しない.例を挙げる
int a = 10,b = 20;
BOOL r1 = (a3);
printf("%d",r1);
BOOL r2 = (a==3) || (b>a);
BOOL r3 = (a>3) || (b>a);
printf("%d %d",r2,r3);
//
BOOL r4 = (a<5) || (a++);
BOOL r5 = (a>5) || (a++);
*論理的非!(1)逆演算をとる.(2)演算規則:真偽に対して逆
BOOL a = YES;
BOOL b = !a;
printf("a=%d b=%d",a,b);
BOOL c = NO,d = !c;
printf("c=%d d=%d",c,d);
最後に、コンテンツ演算子の優先順位演算子>リレーショナル演算子>論理演算子>割り当て演算子の例に注意します.
int a = 3,b = 4, c =5;
BOOL r1 = a + b > c && b == c;
BOOL r2 = a || (b + c && b - c);//b-c 0
printf("%d %d
",r1,r2);