演算子と式
式は、演算子とオペランドで構成されます。
式は、次の2つの状況で生成できます
。1。割り当てステートメントの右側に
配置されます。2。関数パラメーターに配置されます。
各式の戻り値は次のとおりです。論理
式の値の使用
#include <stdio.h>
int main(int argc, char const *argv[])
{
ine a,b,v;
int a=1;
int b=2;
int c=3;
printf("the frist number is:%d\n",a );
printf("the second number is:%d\n",b );
return 0;
}
操作の性質
割り当て演算子
算術演算子
増減1:
プレフィックス演算子として使用する場合:
++ n --n;
m = ++ n:/ * n = n + 1
m = nb
* /
後置演算子として使用する場合:
N ++ n–:
m = n ++:/ * m = n
n = n + 1
* /
型強制変換
リレーショナル演算子
論理演算子
ビット演算子
オペランドオペランド
オブジェクト(定数、変数、関数)
自動型変換:
数値オーバーフロー:
オーバーフロー:
|数値演算構造|> |タイプが表すことができる最大数|
キャリーが最上位ビットを超えてキャリーが失われる
か、キャリーが最上位ビットに到達して符号ビットが
さまざまなタイプのデータの動作結果を変更します。値の範囲が大きくなります。タイプ
すべてのオペランドは、値の範囲が広いオペランドのタイプに変換されます。
数値精度の低下:
異なるタイプのデータの強制変換のプロセスでは、狭い範囲のデータタイプの精度が広い範囲のデータタイプに変換されます。
printf();フォーマット文字
%d出力10進符号付きintタイプ
%u出力10進符号なしintタイプ
%f出力float、10進形式のdoubleタイプ(小数点以下6桁)
%e出力floatは標準指数形式、ダブルタイプ
%cは1文字を文字形式
l + dで出力、uのずっと前に出力、
h + d、uの少し前に出力
、データ
ASCLLコードが占める最小ドメイン幅は大文字と小文字の英語にすることができます文字のASCLLコード値は、32個の
単一文字の入力と出力によって異なります。putchar
(a) /画面のような文字を出力し、文字変数の値a /
文字入力関数getchar()
a = getchar() /キーボードからgetcharとして受け入れられる文字()
パラメータなしの関数値/
/*大写英文字母转换成小写英文字母*/
#include <stdio.h>
int main(int argc, char const *argv[])
{
char a;
putchar("请输入您的英文字母");
a=getchar();
a=a+32;
putchar(a);
putchar('\n');
return 0;
}
/*输入三个数据类型 整型 字符型 浮点*/
#include <stdio.h>
int main(){
int a;
char b;
float c;
printf("Please input an integer :" );
scanf("%d",&a);
printf("integer:%d\n",a );
printf("Please input a charreacter:");
scanf(" %c",&b);
printf("%c\n",b );
printf("Please input a float number:" );
scanf("%f",&c);
printf("%f\n",c );
return 0;
}
関係演算子と論理演算子
関係演算子
算術演算子->関係演算子(true(1)false(0))
<<
==
最後の2つの優先順位よりも高い
==
!=
/*例子*/
#include <stdio.h>
int main(){
int a,b,c;
a=1;
b=2;
c=3;
printf("%d\n",a>b>c );
/*
a>b>c我们可以看作(a>b)>c
(a>b)=3>2,为真,所以a>b的值为1
带入(a>b)>c中,得出1>1,
所以a>b>c的假=0
*/
return 0;
}
論理演算子と論理式
&&論理AND
||論理OR
!論理的否定論理的
否定
-右結合論理演算子の短絡特性:
最初に計算された左オペランドの値から式の値を導出できる場合、右オペランドの値は計算されなくなります。
条件式:
式1?式2:式3
/式1の値がtrueの場合、式2の値が条件式全体に割り当てられ、式1の値がfalse
の場合、式3の値が全体に割り当てられます。条件式/
/*列子;求两个数的最大值*/
#include <stdio.h>
int main(){
int a ;
int b;
printf("Input a,b");
scanf("%d %d",&a,&b);
printf("max=%d\n",a>b ? a:b);
return 0;
}