【C言語】初めて知るC言語〜全体の枠組み(2)〜


序文

前回の内容の続き

新参者のXiao Zhaoのブログには様々な面で不備が多々ありますので、ご批判・修正していただければ幸いです。Xiao Zhaoが、誰でも、特に初心者にとって役立つC言語の基礎知識を丁寧に整理します。

前の記事 ->>( http://t.csdn.cn/zPwV6 )


2. 基礎知識

4. 定数

1. リテラル定数

2. const で修飾された定数変数

3. #define で定義された恒等定数

コード例:

#include<stdio.h>

#define MAX 1000
int main()
{
	
	int arr[MAX] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d", arr[0]);
	return 0;
}

4. 列挙定数 (列挙 - 列挙)

   enum は列挙キーワードです

   列挙型にリストされている可能な値はすべて列挙定数です

コード例:

#include<stdio.h>
enum Sex
{              //默认值      可赋初始值,但不能改变
	MALE,      //0           
	FEMALE     //1
	SECERT     //3
};
int main()
{
	enum Sex s1 = MALE;
	enum Sex s2 = FEMALE;
	printf("%d %d \n", MALE, FEMALE);
	//printf("")
	return 0;
}

5. 文字列 + エスケープ文字 + コメント

1). 文字: 一重引用符で囲まれた文字は、文字リテラル値、または略して文字と呼ばれます。

        「あ」;

2). 文字列: 二重引用符で囲まれた文字列は、文字列リテラル、または略して文字列と呼ばれます。

        「あ」;

        "こんにちは世界";

注: 文字列の末尾は \0 エスケープ文字です。文字列の長さを計算する場合、\0 は終了マークであり、文字列の内容としてカウントされません。

3). エスケープ文字

    \n              换行
    \'              用于表示字符常量'
    \"              用于表示一个字符串内部的双引号
    \\              表示一个反斜杠,防止它被解释为一个转义序列符
    \a              警告字符,蜂鸣
    \b              退格符
    \f              进纸符
    \r              回车
    \t              水平制表符
    \v              垂直制表符
    \ddd            ddd表示1~3个八进制的数字
    \xdd            dd表示2个十六进制数字

4). 注: コードの意味を説明するか、不要なコードをブロックしてください。

//xxxxxxxxxxx C++ コメント スタイル

/*xxxxxxxx*/ C言語のコメント形式

 6. ステートメントの選択

if
{
    ......
}
else
{
    ......
}

7. ループ文 

while ステートメント

for ステートメント

do while ステートメント

8. 機能 

#include<stdio.h>
int Add(int x, int y)    //加函数
{
	int z = x + y;
	return z;            //返回函数值
}

int main()
{
	int a, b;
	int sum = 0;
	scanf("%d%d", &a, &b);
	sum = Add(a, b);        //函数调用
	printf("%d", sum);
	return 0;

}

9. アレイ

1). 配列の定義

2). 配列の使用

#include<stdio.h>
int main()
{
	int a[5] = { 0 };   //定义整型数组
	int i=0;
	//输入五个数给数组
	while (i < 5)
	{
		scanf("%d", &a[i]);
		//printf("%d ",a[i]); //可依次输出输入的数
		i++;
	}
	//输出五个数
	i = 0;
	while (i < 5)
	{
		printf("%d ", a[i]);
		i++;
	}
	return 0;
}

 10. オペレーター

1). 算術演算子: + - * / %

2). シフト演算子: >> <<

#include<stdio.h>
int main()
{
	int a = 2;
	int b,c;
	//移(2进制)位操作符
	b = a<< 2;	//左移
	c = a>> 2;	//右移
	printf("%d\n", a);  //2
	printf("%d\n", b);  //8
	printf("%d\n", c);  //0
	return 0;
}

3). ビット演算子: & ^ |

4). 代入演算子: = += -= *= /= &= ^= |= >>= <<=

5). 単項演算子: ! 論理逆演算

                      - 負の値   

                      + 正の値

                      住所を取得する(&)

                    sizeof 演算子の型のサイズ (バイト単位)

                      ~ 数値のビット単位の反転

                      - フロントリア -

                     ++前、後ろ++

                       ※間接アクセス演算子(逆参照演算子)

                    (タイプ) キャスト

#include<stdio.h>
int main()
{
	int arr[10] = { 0 };	//10个整型元素的数组
	int sz;
	printf("%d\n", sizeof(arr));	//10*sizeof(int)=40
	sz = sizeof(arr) / sizeof(arr[0]);
	//计算数组元素的个数
	//个数=数组总大小/每个元素的大小
	printf("%d\n", sz);
	return 0;
}

6). 関係演算子: > >= < <= != は、「等しくない」ことをテストするために使用されます。

                       == は「等しいかどうか」をテストするために使用されます

7).論理演算子: && 論理および

                          || 論理和

8).条件演算子: exp1?exp2 : exp3

9). カンマ式: exp1、exp2、exp3、... expn

       特徴: 左から右に順番に計算され、式全体の結果は最後の式の結果になります。

10). 次のテーブル参照演算子 []

11). 関数呼び出し演算子 ()

 11. キーワード

よくあるキーワード: auto Break case char const continue default do doubleelse enum externfloat

  goto の場合、int long レジスタが short signedsizeof staticstruct スイッチを返す場合  

typedef Union unsigned void volatile while

(C 言語には豊富なキーワードが用意されており、言語自体があらかじめ設定しており、ユーザーが自分でキーワードを作成することはできません。)

12. ポインタ

1). メモリ: コンピュータ上で特に重要なメモリであり、コンピュータ内のプログラムの実行はメモリ上で行われます。したがって、メモリを有効に使用するために、メモリは小さなメモリ単位に分割され、各メモリ単位のサイズは 1 バイトになります。メモリの各ユニットに効果的にアクセスできるようにするために、メモリ ユニットには番号が付けられており、これらの番号はメモリ ユニットのアドレスと呼ばれます。

        変数はメモリ内に作成され (メモリ内に空間が割り当てられ)、各メモリ単位にはアドレスがあるため、変数にもアドレスがあります。

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

13. 構造

 構造: C 言語の特に重要な知識ポイントであり、この構造により C 言語は複雑な型を記述できるようになります。たとえば、学生を説明する場合、学生には名前 + 年齢 + 性別 + 学生番号が含まれます。ここでは構造のみを使用して説明できます。

#include<stdio.h>
struct Stu
{
	char name[20]; //名字
	int age;	   //年龄
	char sex[5];   //性别
	char id[15];   //学号
};
int main()
{
	struct Stu s = { "张三",20,"男","20220926" };	//结构体的初始化
	printf("%s,%d,%s,%s\n", s.name, s.age, s.sex, s.id);//.结构体访问操作符
	struct Stu *ps = &s;			//->操作符
	printf("%s,%d,%s,%s\n", ps->name, ps->age, ps->sex, ps->id);
	return 0;
}

要約する

幸せな時間は常に短い. 以上が今日話したいことですが、この記事は引き続き趙暁同志のC言語に対する初期理解を簡単に紹介し、全体の枠組みを簡単に整理します。Xiao Zhao同志は更新を続けています。継続的な学習の動機は、1つのボタンと3つの連続リンクによるBaoziのサポートです〜。

おすすめ

転載: blog.csdn.net/weixin_70411664/article/details/127030105