プログラミングC: 投稿 4 – 算術, Cでオペレータ

今日のレッスンでは、C言語で計算を実行する方法をご紹介します, より多くのデータを処理するための演算子.

1. 算術演算子

C言語では提供してい 5 基本的な算術演算子

STT オペレータ 名前 結果
1 + コミュニティ 3 + 4 7
2 引きました 10.5 – 3 7.5
3 * スタッフ 3 * 2 6
4 / シェア 6 / 3 2
5 % バランスを分割 8 % 3 2

OK. 今の例をやってみてください:

#include <stdio.h>

int main()
{
    int a = 5, b = 7;
    double c = 4.5, d = 6;

    printf("%d + %f = %f \n", a, c, a + c);
    printf("%d - %d = %d \n", a, b, a - b);
    printf("%d * %f = %f \n", b, d, b * d);

    /* Luu y phep chia nhe*/

    printf("%d / %d = %d \n", b, a, b / a);
    printf("%f / %d = %f \n", c, a, c / a);
    printf("%f / %f = %f \n", c, d, c / d);

    printf("%d %% %d = %d \n", b, a, b % a);

    return 0;
}

結果:

5 + 4.500000 = 9.500000
5 - 7 = -2
7 * 6.000000 = 42.000000
7 / 5 = 1
4.500000 / 5 = 0.900000
4.500000 / 6.000000 = 0.750000
7 % 5 = 2

剰余演算子 (%) 両方のオペランドが整数である必要. これは、除算の余りを返します。. 例 7 % 5 整数で割ることによって計算 7 与える 5 されるように 1 残りはあります 2; このようにして得られました 2.

共通, 両方のオペランドが整数である場合、結果は整数になります. しかしながら, 一方または両方のオペランドが、結果は実数になります実数で.

両方のオペランドが整数除算演算子である場合、その後の分割は整数の除算ではなく、私たちが使用する通常の部門として行われています. 整数の除算は常に貿易の整数部を返します. 例: 7 / 5 = 1 かなり 7 / 5 = 1.4. これを修正するために、我々はいくつかまたはすべてを転送することができます 2 除算を実行するための実際の種類と数. どのようにキャスト (またはキャスト) 以下のようになります:

(転送されるタイプ) 変数.
最高経営責任者(CEO: (フロート) ザ·;

注意 これは、元の変数の型のキャストですが、唯一の瞬時値を変更することはありません (その時点で新しいスタイルに変更します). あなたはすぐに転送するタイプの新しい変数を宣言する必要があり、この値を保存して、再度その値を割り当てるには. 例えば、簡単のために.

#include <stdio.h>

int main()
{
    int a = 5, b = 7;
    double c;

    printf("%d / %d = %d \n", b, a, b / a);

    /* Chuyen gia tri tuc thoi cua b sang kieu so thuc*/
    printf("%d / %d = %f \n", b, a, (double)b / a);

    /* Chuyen gia tri tuc thoi cua a sang kieu so thuc*/
    printf("%d / %d = %f \n", b, a, b / (double)a);

    /* Neu lam the nay thi van khong dung, vi b/a duoc so nguyen
     * sau do chung ta moi ep kieu so nguyen do sang so thuc
     */
    printf("%d / %d = %f \n", b, a, (double)(b / a));

    return 0;
}

結果:

7 / 5 = 1
7 / 5 = 1.400000
7 / 5 = 1.400000
7 / 5 = 1.000000

2. 関係演算子

C言語では提供してい 6 関係演算子は、数値を比較します. 貴重な関係演算子 1 (正しい結果) または 0 (とき、間違った結果).

STT オペレータ 名前 結果
1 == と比較すると 5 == 5 1
2 != 他の比較 5 != 5 0
3 > グレーター比べ 5 > 4 1
4 < 小さい比較 5 < 4 0
5 > = 以上の比較 5 > = 4 1
6 <= 比較は、以下であります 5 <= 5 1

我々は、値を比較するために、これらの演算子を使用, 文字,...しかし、 一緒に文字列を比較しません これは、文字列のアドレスにつながるので、コンテンツの文字列ではなく、比較します. 我々は、ライブラリの文字列に文字列関数を比較して、後で検索します. 一緒に文字を比較するとき、私たちは機械の性質を理解することができます一緒に、文字のASCIIコードを比較. 最高経営責任者(CEO. ''> 'B'は値を返します。 0 'A'のASCIIコードを有しています 65 「B」はあるが 66.

3. 論理演算子

Cのオファー 3 論理式を接続するための論理演算子. 関係演算子と同様に, 論理演算子は、値を持っています 1 または 0.

STT オペレータ 名前 結果
1 ! ネガ ! (5 > 4) 0
2 && 5 > 4 && 5 > 6 0
3 || または 5 > 4 || 5 > 6 1

4. 増加または減少するオペレータ

オペレータが増加 (++) そして、削減 (- -) 便宜のために、それぞれ提供プラス 1 変数またはマイナスに 1 変数から.

#include <stdio.h>

int main()
{
    int i, k;

    i = 5; k = i++;
    printf("i = %d, k = %d\n", i, k);

    i = 5; k = ++i;
    printf("i = %d, k = %d\n", i, k);

    i = 5; k = i--;
    printf("i = %d, k = %d\n", i, k);

    i = 5; k = --i;
    printf("i = %d, k = %d\n", i, k);

    return 0;
}

結果:

I = 6, K = 5
I = 6, K = 6
I = 4, K = 5
I = 4, K = 4

つまり私たちが持っています:

++iと –その式を実装するために、結果を取る前に、私はその後、私が計算されます
I ++と私– それから私は、新しい表現Iを計算し、それ以前に実用化されました

5. 代入演算子

代入演算子は、値を格納するために使用されます 1 特定の変数.

オペレータ 等価の
= X = 5 近くに 5 xの
+= X + = 5 X = X + 5
-= X - = 5 X = X - 5
*= X * = 5 X = X * 5
/= X / = 5 X = X / 5
%= X%= 5 X = X % 5

いくつかのテストを実行しますNHE.

#include <stdio.h>

int main()
{
    int x;

    x = 5;
    printf("x = 5 => x = %d\n", x);

    x += 5;
    printf("x += 5 => x = %d\n", x);

    x -= 5;
    printf("x -= 5 => x = %d\n", x);

    x *= 5;
    printf("x *= 5 => x = %d\n", x);

    x /= 5;
    printf("x /= 5 => x = %d\n", x);

    return 0;
}

結果:

X = 5 => X = 5
X + = 5 => X = 10
X - = 5 => X = 5
X * = 5 => X = 25
X / = 5 => X = 5

6. いくつかの他の演算子

6.1 コンマ演算子

複数の式はコンマ演算子を使用して、同じ式に接続することができます. コンマ演算子要求 2 オペランド. 最初に、左オペランド、右オペランドを推定, そして、最終的な結果として、後者の値を返します。.
例:

#include <stdio.h>

int main()
{
    int m, t;

    m = (t =2, t*5 + 10);
    printf("t = %d, m = %d\n", t, m);

    return 0;
}

結果:

トン= 2, M = 20

6.2 オペレータは、サイズを取ります

Cは便利な演算子を提供, はsizeof, 任意のデータ項目またはデータタイプのサイズを計算します. これは、単一のオペランドがタイプ名を指定することができます必要があります (例, int型) または式 (例, 100) バイト単位で指定されたエンティティのサイズを返します。. 試験例NHA. この演算子我々は、データタイプに慣れてきたし、.

テスト実行例:

#include <stdio.h>

int main()
{
    printf("char size = %d byte\n", sizeof(char));
    printf("short size = %d byte\n", sizeof(short));
    printf("int size = %d byte\n", sizeof(int));
    printf("long size = %d byte\n", sizeof(long));
    printf("float size = %d byte\n", sizeof(float));
    printf("double size = %d byte\n", sizeof(double));
    printf("1.55 size = %d byte\n", sizeof(1.55));
    printf("\"Hello\" size = %d byte\n", sizeof("Hello"));
    return 0;
}

結果:

文字サイズ= 1 バイト
短いサイズ= 2 バイト
int型のサイズ= 4 バイト
長いサイズ= 8 バイト
フロートサイズ= 4 バイト
ダブルサイズ= 8 バイト
1.55 サイズ= 8 バイト
“こんにちは” サイズ= 6 バイト

7. 演算子の優先順位

演算子の優先順位は、次の表に、上から下に行われています. 各行の最初の列のように優先順位を有しています 3.

種類 オペレータ 優先度の高い順
接尾辞 () [] -> . ++ – – 左から右
単項 + – ! 〜 ++ – – (タイプ)* & はsizeof 右から左
掛けます * / % 左から右
アップ追加 + – 左から右
シフト << >> 左から右
相対 < <=>> = 左から右
バランシング == != 左から右
DNAビットを可能にします & 左から右
XORビット ^ 左から右
ORビットを許可 | 左から右
AND論理は許さ && 左から右
OR論理を許可します || 左から右
条件 ?: 右から左
近くに = + = - = * = / =%= >> = <<= &= ^ = |= 右から左
コンマ , 左から右

エクササイズ

  1. 秒でプログラムを書きます, 「GIOに入力された秒数を変更します:プット:「シャイン, 各コンポーネントは整数 2 数字. VD入力 7826 その後、プリントアウト 02:10:26

  2. 変数x = 3; プログラムを実行しないでください。, 実行後、xの値を推測:
    X = X ++ - 3 + X;
    完成推測した後、結果を確認するためにプログラムを書いてみます.