作成日: 2022/12/30
1

C#に行く前の基礎として、C言語の勉強を始める

C言語学習 1日目

C#に行く前の基礎として、C言語の勉強を始めます。
C#の言語を勉強する意味は、
C#でUnityのゲームと、Windowsのデスクトップアプリを作れるようになりたいからです。

ドットインストールのC言語講座をやっています(無料講座でした)

(ここで紹介するコードは少し応用で変えている場合があります)

エディタは、IDEのVisual Studio Communityを使いました。
おそらく、C#やUnityのエディタとしても使うだろうという意味で、
今のうちに慣れておこうという意味もあります。

今日習ったこと

ハローワールドプログラム

#include <stdio.h>
int main(void)
{
    printf("Hello World!!\n");
    return 0;
}

結果:

Hello World!!

超基本
おまじないという言葉嫌いなのでメモ。
stdio.h(標準ioのヘッダーファイル?)を読み込んでおく。
mainが必ず実行される。mainがintなのは、きっと0を返すからなんだろうと推測。
voidは表示するだけだから?
(疑問形は後で、調べますw)

変数と表示(出力)

/*
int(整数) %d
float(実数) %f
char(1文字) %c
*/
#include <stdio.h>
int main(void)
{
    int x = 10000;
    float y = 5.65;
    char c = 'A';

    printf("x = %d\n", x);
    printf("y = %f\n", y);
    printf("c = %c\n", c);
    return 0;
}

実行結果:

x = 10000
y = 5.650000
c = A

新たにcファイル作るとmain被りでエラーになる。
hello.cをそのまま使いながら、「成功ソースはコピーしてコメントに…」を繰り返えすことに…
char c = 'A'のところ、ダブルコーテーションで囲むと、エラーにならないが□に文字化け。シングルコーテが正解。

構文
標準出力に出力する
printf(出力内容 , 変数);
出力内容の%...のところで右側の変数の内容を置き換える(でいいのかな)。
ダブルコーテーションは文字列を出力

int(整数) %d
float(実数) %f
char(1文字) %c
ちなみにドットインストールにはまだ出てきてませんが、C言語には文字列型(stringなど)というのはないらしいです。Cでの文字列の扱い方があるらしいですが、C#で使わないなら、頭の片隅に入れておくだけにします。

演算子

#include <stdio.h>
int main(void)
{
    int x;
    x = 10 % 3; /* 1 */
    printf("x = %d\n", x);
    x += 2; /* 3 */
    printf("x = %d\n", x);
    x++; /* 4 */
    printf("x = %d\n", x);
    return 0;
}

実行結果

x = 1
x = 3
x = 4

それぞれ、
10を3で割った余りは1をxに(余りの演算)
xの値1に2を足して再代入で3(代入を伴う演算)
xの値3に1カウントして4(単項演算子)
という意味になる。

メモ)普通に四則演算できる

足し算 1 + 1
引き算 2 - 1
掛け算 3 * 4
割り算 12 / 4

条件分岐と比較演算子

分岐条件(if)
比較演算子

/*比較演算子*/
>=
<=
>
<
==
!=
#include <stdio.h>
int main(void)
{
    int score = 80;
    //int score = 55;
    //int score = 45;

    if (score >= 70) {
        printf("優秀!\n");

    }
    else if (score >= 50) {
        printf("まぁまぁ!\n");
    }
    else {
        printf("残念…不合格!\n");
    }

    return 0;
}

今日はここまで!

(ticketnoteを書きながら5時間くらい)


これからゲームアプリとWindowsアプリを作りたい初心者です。 ゲームアプリとWindowsアプリ、共に経験ゼロです。 これからの体験が少しでも参考になれば幸いです。 目指す事 ・C言語学習→C#学習 ・Unity (C#) の勉強 ・Unityゲーム作成 ・Windowsアプリ(C#) 作成