【C言語の基礎知識(最終回)】

ヒント: この記事は、初めての C 言語の基礎知識を個人的にまとめたものです。内容に誤りがある場合は、修正するためにすぐにご連絡ください。

  • 転載の際はオリジナルの内容を明記してくださいますようお願いいたします。


序文

皆さんこんにちは、Xiao Mingです。今日は初めてC言語の基礎知識をまとめてみます。


ここに画像の説明を挿入します

提示:以下是本篇文章正文内容:

1. アレイ

1. 配列の定義

数値を保存する場合、 int x = 6; などの変数を作成できますが、10 個、さらには数百個を保存したい場合は、 array を使用する必要があります

それでは、配列の形式を見てみましょう。

データ型 変数名[配列数] = {データ内容};

または

データ型 変数名[配列数] = {データ内容};
// 配列定義時、配列数は省略可能

例えば:

#include <stdio.h>
int main()
{
    
    
	int arr1[5] = {
    
    1,2,3,4,5};
	int arr2[] = {
    
    4,5,6,7,8};
	
    return 0;
}

arr1は最大5要素の整数配列を定義していますが、変更する場合はデータ内容に応じて配列数を調整する必要があります。
arr2は整数配列を定義し、5 つの要素を保持し、配列の数を省略します。その後の変更では配列の数を調整する必要はありません。

2. 配列の添字

配列の形式がわかったら、どうやって値を取得するのでしょうか?
C 言語では、配列の各要素には添字があり、添字は 0 から始まります

以下に示すように:
ここに画像の説明を挿入します

配列内の要素には添字を使用してアクセスできます。配列内の 2 を取得したい場合は、arr1[1]を使用してアクセスする必要があります。

例えば:

#include<stdio.h>
int main()
{
    
    
	int arr[4] = {
    
     12, 345, 678, 999 };
	printf("%d\n",arr[2]);

	return 0;
}

操作結果:
ここに画像の説明を挿入します

上図のように、出力時に使用する添字は2であり、印刷時には配列内に添字2を持つデータ678が画面に表示されます。

2、機能

関数は、一緒にタスクを実行するステートメントのグループです。すべての C プログラムには少なくとも1 つの関数 (メイン関数 main() )があり、すべての単純なプログラムに対して他の追加関数を定義できます。

コードは通常、各関数が特定のタスクを実行する方法に応じて分割されます。

コードをさまざまな関数に分割できます。コードをさまざまな関数に分割する方法を決定するのは私たち次第です。

例えば:

#include<stdio.h>
int Add(int m, int n)
{
    
    
    return m + n;
}
int main()
{
    
    
    int x = 11;
    int y = 22;

    printf("%d\n", Add(x, y));

    return 0;
}

操作結果:
ここに画像の説明を挿入します

最初に、2 桁の加算値を返すことができるAdd()関数を宣言しました。プログラムが実行されると、最初にメイン関数 main()に入り、次に x と y の値を定義し、次にprintf()関数を使用し、xyの値をAdd()関数mnに渡し、2つの数値を加算した値を返し、画面に出力します。

3. オペレーター

1. 一般的な算術演算子

ここに画像の説明を挿入します

例えば:

#include<stdio.h>
int main()
{
    
    
    int x = 10;
    int y = 3;

    int a = x + y; //加
    int b = x - y; //减
    int c = x * y; //乘
    int d = x / y; //除
    int e = x % y; //取余、取模

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

    return 0;
}

操作結果:
ここに画像の説明を挿入します

2. その他の一般的な演算子:

ここに画像の説明を挿入します

これらの一般的な演算子に加えて、他の演算子も使用しますが、それらの機能については詳細説明で詳しく説明します。

4. ポインタ

C 言語では、ポインタは変数のメモリ アドレスを格納するために使用される特別な変数です。言い換えれば、ポインタ メモリはポインタ変数を格納するために使用されるメモリ空間です。

1. 記憶

メモリはコンピュータ上で特に重要なメモリであり、コンピュータ内のプログラムはすべてメモリ内で実行されます。

  • メモリを効率的に使用するために、メモリは小さなメモリ ユニットに分割され、各メモリ ユニットのサイズは 1 バイトです。
  • メモリの各ユニットに効果的にアクセスするために、メモリ ユニットには番号が付けられ、これらの番号はメモリ ユニットのアドレスと呼ばれます。
    ここに画像の説明を挿入します
  • 変数にはメモリの作成時にスペースが割り当てられ、各メモリユニットにはアドレスがあります。
    次のように変数アドレスを取得します。
#include <stdio.h>
int main()
{
     
     
    int num = 0;
    // &num;//取出num的地址
    //取出的是第一个字节的地址(首地址)
    printf("%p\n", &num);//打印地址,%p是以地址的形式打印
    return 0;
}

操作結果:ここに画像の説明を挿入します

2. ポインタの定義

では、アドレスはどのように保存すればよいのでしょうか? ここでポインタ変数を定義する必要があります。

int num = 0;
int *p;
p = &num;

ポインタの使用:

#include <stdio.h>
int main()
{
    
    
    int num = 10;
    int *p = &num;
    *p = 99;
    //修改*p就修改了num的值
    
    return 0;
}

3. ポインターのサイズ

#include <stdio.h>
int main()
{
    
    
    printf("%d\n", sizeof(char*));
    printf("%d\n", sizeof(short*));
    printf("%d\n", sizeof(int*));
    printf("%d\n", sizeof(double*));
    return 0;
}

操作結果:
ここに画像の説明を挿入します

ポインターのサイズは、32 ビット プラットフォームでは 4 バイト、64 ビット プラットフォームでは 8 バイトです。

5. 構造

C 言語の構造体 (struct) は、異なる型のデータを組み合わせて新しいデータ型を形成できる自己定義のデータ型です。

構造体は主に次のシナリオで使用されます。

1.プログラムで文字型、浮動小数点型、整数型などの複数の異なる型の変数を表現する必要がある場合、構造体を使用してこれらのデータを全体として使用できます。
2.構造体はデータを簡単にパッケージ化できるため、プログラムの書き込みと読み取りが簡素化されます。
3.構造はコードの効率を向上させることができるため、組み込みプログラミングでは特に重要です。

構造体の定義形式は次のとおりです。

struct 構造体名{ 構造体に含まれる変数または配列; };

構造体は配列に似ていますが、これもデータのコレクションであり、その全体的な使用にはあまり意味がありません。配列は添字を使用して[ ]個々の要素を取得し、構造体はドットを使用して.個々のメンバーを取得します。

構造体のメンバーを取得するための一般的な形式は次のとおりです。

構造体変数 名.メンバー ;

たとえば、
生徒について説明すると、生徒には名前 + 年齢 + 身長の情報が含まれます。
構造はさまざまな種類のデータを接続できます

#include <stdio.h>
struct Stu
{
    
    
	char name[20];
	int age;
	float height;
};
int main()
{
    
    
	int num;
	struct Stu stu1 = {
    
     "张三", 20, 175.2 };
	struct Stu stu2 = {
    
     "李四", 19, 181.9 };
	struct Stu stu3 = {
    
     "王五", 21, 168.4 };
	printf("姓名:%s 年龄:%d 身高%.1f\n", stu1.name, stu1.age, stu1.height);
	printf("姓名:%s 年龄:%d 身高%.1f\n", stu2.name, stu2.age, stu2.height);
	printf("姓名:%s 年龄:%d 身高%.1f\n", stu3.name, stu3.age, stu3.height);

	return 0;
}

操作結果:
ここに画像の説明を挿入します

構造体はカスタム データ型であり、変数作成用のテンプレートであり、メモリ スペースを占有しないことに注意してください。実際のデータが含まれ、格納するメモリ スペースを必要とするのは構造体変数のみです。

終わり

さて、ここまで読んで、このブログの内容をすべて読み終え​​たことになります。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/mingloveyang/article/details/132508492