C言語の基礎とsigned/unsigned、goto文を含む制御構造

C言語は、シンプルでありながら多機能なプログラミング言語です。ここでは、変数・データ型、signed/unsigned、制御構造(if, for, while, switch, goto)など、基礎から幅広く解説します。

変数とデータ型

C言語では、変数を使ってデータを一時的に保存します。主なデータ型は以下の通りです。

  • int:整数
  • char:文字
  • float/double:小数

signedとunsigned

C言語では、整数型(intやcharなど)に「符号付き(signed)」と「符号なし(unsigned)」を指定できます。

キーワード取りうる範囲(32bitの場合)特徴
signed intsigned int a;-2,147,483,648 ~ 2,147,483,647正負どちらも表現できる
unsigned intunsigned int b;0 ~ 4,294,967,295正の値のみ表現できる
  • signedはマイナスも扱えます(デフォルトでintはsigned)。
  • unsignedは0以上の値のみ扱い、より大きな正の値を扱えます。

例:

signed int x = -10;
unsigned int y = 4000000000;
printf("x = %d, y = %u\n", x, y);

制御構造

条件分岐

if文

if (x > 0) {
    printf("xは正です\n");
} else {
    printf("xは0か負です\n");
}

switch文

int n = 2;
switch (n) {
    case 1:
        printf("1です\n");
        break;
    case 2:
        printf("2です\n");
        break;
    default:
        printf("その他\n");
        break;
}

ループ・繰り返し

for文

for (int i = 0; i < 5; i++) {
    printf("%d\n", i);
}

while文

int i = 0;
while (i < 5) {
    printf("%d\n", i);
    i++;
}

その他

goto文

goto文は、プログラムの流れを任意のラベルへジャンプさせます。

使用例:

#include <stdio.h>

int main() {
    int i = 0;
start:
    printf("i = %d\n", i);
    i++;
    if (i < 3) goto start;
    printf("ループ終了\n");
    return 0;
}

注意点:

  • gotoは可読性を下げやすいため、基本的にはifやループで制御しましょう。
  • 複雑なエラー処理や多重ループ脱出など、限定的な場面で使われます。

まとめ

  • signed/unsignedを使い分けることで、整数値の範囲や用途を最適化できます。
  • if, for, while, switch, gotoなど、C言語の制御構造を理解し、適切に使い分けましょう。
  • gotoは便利な場面もありますが、使いすぎは避けるのが基本です。

C言語はクラス等が使えないですが、すべてを自前でプログラミングしないといけない言語です。そのため、C言語が書けるとすべての言語への理解等理解がはやくなるので、C言語の基礎をしっかり身につけて、より高度なプログラミングに挑戦しましょう。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村