1. C言語の基本概念

環境を整える

私が使用する継承開発環境は Visual Studio 2022 (略して VS 2022) の
ダウンロード リンクです

1. ソースファイルとヘッダファイル

C 言語
ソース ファイルの拡張子は .c (注: C++ ソース ファイルの拡張子は .cpp)、
ヘッダー ファイルの拡張子は .h

2. コンパイルとリンク

C 言語のソース コード自体は単純なテキスト ファイルであり、C 言語コードは .c 接尾辞が付いたファイルに配置されます。

通過しなければなりませんコンパイルそしてリンクその後、実行可能ファイルになり、実行できるようになります。

テキスト ファイル自体は実行できないため、渡す必要があります。コンパイラの翻訳そしてリンカーリンク、バイナリ実行可能ファイルを生成すると、その実行可能ファイルを実行できるようになります。

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

3. 初めてのC言語プログラム

//头文件 没有头文件无法解析对应的库函数(例:printf()函数)
//std-标准	i-input输入	 o-output输出
#include <stdio.h>

//c语言代码中一定要有main函数,main函数也叫主函数
//main函数是程序的入口,都从main函数的第一行代码开始
int main() {
    
    
	//main函数里面写代码
	//每段代码后面都要加上 ; 
	printf("hello c语言!");
	
    //return 0结尾
	return 0;
}

//运行快捷键 ctrl + f5 或者 fn + ctrl + f5

4. main()関数について

1. C 言語コードは main 関数から実行を開始します。
2. main 関数は main 関数とも呼ばれます。main 関数はプログラムのエントリ ポイントです。
3. プロジェクトには複数の .c ファイルが存在できます。ただし、メイン関数は 1 つだけです(プログラムへの入り口は1つしかないため)

5. printf()ライブラリ関数について

機能: 文字列を出力および印刷し、他のタイプのデータを出力および印刷することもできます (フォーマットされた出力)
前提条件:ヘッダー ファイルstdio.hが導入されている必要があります

#include <stdio.h>
int main() {
    
    

	//printf是一个库函数,专门用来打印数据
	printf("hello c!");//打印字符串
	
	//利用格式字符串输出(根据占位符决定数据类型)
    printf("%d\n",100);//打印整型
	printf("%f\n",100.01);//打印浮点型(默认保留至小数点后6位)
	printf("%s\n","你好!");//打印字符串
	printf("%c\n",'c');// 打印字符
	return 0;
}

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

文字と文字列の違いと注意事項
1. 文字には一重引用符「 」を使用します。
2. 文字列には二重引用符「 " を使用します
。 3. 漢字は 2 文字を占めるため、単一の漢字を文字の形式で出力すると、文字化けしてしまいます。

6. キーワードの紹介

キーワードは、その名前が示すように、非常に重要な単語です。C 言語では、さまざまなデータ型 (int、long、float、char など) の定義や、重要な特別な意味を持ついくつかのキーワードなど、主に文法の一部を構成します。 . (if、while、do、for など)。

注: ロゴを作成する場合、キーワードと同じ名前を付けることはできません。

C言語の32個のキーワードは以下の通りです。
ここに画像の説明を挿入します

7.文字およびASCIIエンコーディング

C 言語の文字は一重引用符で囲まれます

ASCII エンコーディングの意味:
コンピュータ内のすべてのデータはバイナリ形式で保存されます。私たち一人ひとりがこれらの文字ごとにバイナリ シーケンスをコンパイルする場合、これをエンコーディングと呼びます。目的としては、誰もが互いに通信するのに便利でしたその後、米国規格協会 (ANSI) は標準の ASCII エンコーディングを導入し、C 言語の文字は ASCII エンコーディング方式に従いました。

いくつかの一般的な ASCII コード
. 文字 AZ の ASCII コード値の
範囲は 65 ~ 90. 文字 az の ASCII コード値の範囲は 97 ~ 122.
対応する大文字と小文字 (a と A) の ASCII コード値の違いは次のとおりです。 32(文字小文字+32=文字大文字)
0~9の数字のASCIIコード値は48~57の範囲にあり、
このうちASCIIコードの値は0~31の範囲にあります。この32文字は表示できない文字
0 ~ 31 この 32 文字は、表示できない操作機能に対応します。

特定の ASCII テーブルについては、https://www.runoob.com/w3cnote/ascii.htmlを参照してください。

8. 文字列と /0

文字列
の定義: 二重引用符で囲まれた文字列を文字列と呼びます。
プレースホルダーの書式設定: %s

以下は文字列を出力します。表面上はわずか 6 文字に見えますが、監視を開始します。

int main() {
    
    
	printf("abcdef");
	return 0;
}

監視の観点から見ると、この文字列は実際には合計 7 文字であり、末尾に追加の\0エスケープ文字があります。
C 言語では、文字列の末尾にエスケープ文字 \0 が隠されており、\0 が文字列の終了マークとなります。
ここに画像の説明を挿入します

文字列と\0の関係

int main() {
    
    
	//arr1 可以将字符串放到字符的数组中
	char arr1[] = "abc";//abc

	//arr2 将3个字符放入字符数组中
	char arr2[] = {
    
    'a','b','c'};

	//arr3 用转义 \0 将字符串隔开
	char arr3[] = "abc\0ddd";
	
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	printf("%s\n", arr3);
	return 0;
}

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

分析:
arr1 は abc、normal を出力します。

arr2 が abc を出力した後には、大量のコンテンツがあります。配列 arr2 が abc を出力した後、これは文字列ではないため、最後に出力を停止する \0 文字
マークメモリ内にある「ジャンク ダーティ コンテンツ」と呼ばれるものです。 「すべて印刷されています。

arr3をabcに出力すると\0マークに触れるので印刷が止まります。

arr2 配列を変更し、配列の最後の要素の後に文字 \0 を追加します。

int main() {
    
    
	//如果在arr2数组在结尾添加一个 \0 转义字符
	char arr2[] = {
    
    'a','b','c','\0'};//此时输出完abc即刻停止
	printf("%s\n", arr2);
	return 0;
}

9. エスケープ文字

名前が示すように、エスケープとは意味を変更することを意味します。エスケープ文字の明らかな特徴は、前にバックスラッシュが付いていることです (\n 改行など)。

\n を例に挙げます。
\ が追加される前は、n は単なる文字であり、
n に \ が追加された後は、\n が改行操作を表します。

int main()
{
    
    
	printf("a\nb");
	return 0;
}

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

また、上記の文字列にある \0 もエスケープ文字で、文字 0 に \ を追加すると \0 になります。\0 は、文字列の終わりの識別子という新しい意味です。

以下は一般的に使用されるエスケープ文字です。

エスケープ文字 意義
\\ バックスラッシュ \ 記号を表します
「文字内の二重引用符」
\' 文字「'」内の単一引用符を示します。
\n 改行文字
\t タブ文字。カーソルは次の水平タブ位置 (通常は次の 8 の倍数) に移動します。
\b Backspace キー、カーソルは 1 文字戻りますが、文字は削除されません
\v 垂直区切り記号。カーソルは次の垂直タブストップに移動します。通常は次の行と同じ列です。

10. strlen()関数について

機能: 文字列の長さを計算します。

int main() {
    
    
	//计算字符串的长度,直到空结束字符,但不包括空结束字符。
	int len = strlen("c:\test\123.c");//这里调式执行后结果为9,但是监视结果为10(监视把\0转义字符算上了)
	printf("%d\n", len);
	return 0;
}

エスケープ文字に注意してください。エスケープ文字は 1 文字としてカウントされます,c:\tエスt\123.c(黄色のマークの部分は 1 文字としてカウントされます。つまり、\t は 1 文字としてカウントされ、\123 は 1 文字としてカウントされます。

\ddd: ddd は 8 進数を表します

デバッグ結果:
ここに画像の説明を挿入します

監視結果:
ここに画像の説明を挿入します\0が含まれているため監視結果は10件ありましたが、strlen() には、終了識別子文字 \0 が含まれません

おすすめ

転載: blog.csdn.net/qq_45657848/article/details/131823517
おすすめ