マインドマップギャラリー C言語
これはC言語に関するマインドマップであり、その主な内容には、ポインター、関数、配列、ループ、スイッチステートメント、ステートメント、論理演算子および論理式、リレーショナル演算子とリレーショナル式、リレーショナル式、リレーショナル式、シンプルなCプログラム、データ型、演算子、式、概要、および試験の質問が含まれます。
2025-03-01 10:32:53 に編集されましたルミ:精神的な目覚めの10次元。あなたが自分自身を探すのをやめるとき、あなたが探しているのはあなたを探しているので、あなたは宇宙全体を見つけるでしょう。あなたが毎日忍耐することは何でもあなたの精神の深みへの扉を開くことができます。沈黙の中で、私は秘密の領域に滑り込み、私は私の周りの魔法を観察するためにすべてを楽しんだが、何の騒ぎをしなかった。翼で生まれたときに、なぜcraいるのが好きですか?魂には独自の耳があり、心が理解できないことを聞くことができます。すべてへの答えを内向きに求めてください、宇宙のすべてがあなたの中にあります。恋人たちはどこかで会うことはなく、この世界には別れもありません。傷は光があなたの心に入るところです。
慢性心不全は、心拍数の速度の問題だけではありません!これは、心筋収縮と拡張期機能の減少によって引き起こされ、それが不十分な心拍出量につながり、肺循環の鬱血と全身循環のうっ血を引き起こします。原因、誘導、補償メカニズムまで、心不全の病態生理学的プロセスは複雑で多様です。浮腫を制御し、心臓の前面と後負荷を減らし、心臓の快適機能を改善し、基本的な原因を予防し、治療することにより、この課題に効果的に対応できます。心不全とマスタリング予防と治療戦略のメカニズムと臨床的症状を理解することによってのみ、心臓の健康をよりよく保護できます。
虚血再灌流損傷は、臓器や組織が血液供給を回復すると、細胞機能と代謝障害、構造的損傷が悪化する現象です。その主なメカニズムには、フリーラジカル生成の増加、カルシウム過負荷、および微小血管および白血球の役割が含まれます。心臓と脳は一般的な損傷した臓器であり、心筋の代謝と超微細構造の変化、心機能の低下などの変化として現れます。予防と制御の測定には、フリーラジカルの除去、カルシウム過負荷の減少、代謝の改善、低温、低温、低圧などの再灌流条件の制御が含まれます。これらのメカニズムを理解することは、効果的な治療オプションの開発に役立ち、虚血性損傷を軽減するのに役立ちます。
ルミ:精神的な目覚めの10次元。あなたが自分自身を探すのをやめるとき、あなたが探しているのはあなたを探しているので、あなたは宇宙全体を見つけるでしょう。あなたが毎日忍耐することは何でもあなたの精神の深みへの扉を開くことができます。沈黙の中で、私は秘密の領域に滑り込み、私は私の周りの魔法を観察するためにすべてを楽しんだが、何の騒ぎをしなかった。翼で生まれたときに、なぜcraいるのが好きですか?魂には独自の耳があり、心が理解できないことを聞くことができます。すべてへの答えを内向きに求めてください、宇宙のすべてがあなたの中にあります。恋人たちはどこかで会うことはなく、この世界には別れもありません。傷は光があなたの心に入るところです。
慢性心不全は、心拍数の速度の問題だけではありません!これは、心筋収縮と拡張期機能の減少によって引き起こされ、それが不十分な心拍出量につながり、肺循環の鬱血と全身循環のうっ血を引き起こします。原因、誘導、補償メカニズムまで、心不全の病態生理学的プロセスは複雑で多様です。浮腫を制御し、心臓の前面と後負荷を減らし、心臓の快適機能を改善し、基本的な原因を予防し、治療することにより、この課題に効果的に対応できます。心不全とマスタリング予防と治療戦略のメカニズムと臨床的症状を理解することによってのみ、心臓の健康をよりよく保護できます。
虚血再灌流損傷は、臓器や組織が血液供給を回復すると、細胞機能と代謝障害、構造的損傷が悪化する現象です。その主なメカニズムには、フリーラジカル生成の増加、カルシウム過負荷、および微小血管および白血球の役割が含まれます。心臓と脳は一般的な損傷した臓器であり、心筋の代謝と超微細構造の変化、心機能の低下などの変化として現れます。予防と制御の測定には、フリーラジカルの除去、カルシウム過負荷の減少、代謝の改善、低温、低温、低圧などの再灌流条件の制御が含まれます。これらのメカニズムを理解することは、効果的な治療オプションの開発に役立ち、虚血性損傷を軽減するのに役立ちます。
C言語
試験の質問タイプ
単一の選択の質問
判断の質問
プログラムの空白を埋めます
プログラム分析
プログラミングの質問
概要
コンピューター開発
プログラミング言語の開発
C言語の開発
C言語の特性
中間言語
ハードウェアへのアクセス
プログラマー言語
豊富な輸送キャラクター、高いコード品質、優れた移植性
モジュラーデザイン言語
C言語プログラム構造
説明します
プログラムの構成c
関数は2つの部分で構成されています
プログラムの実行
声明
プログラミングスタイル
全体的な構造アライメント
識別子の定義、の意味を理解してください
コメント
マシンに行くための手順
編集
ソースプログラム入力
ソースプログラムを変更します
保存
編集
構文エラーを確認してください
ターゲットプログラム.objを生成します
リンク
ライブラリ関数
埋め込む
。EXE
データ型、演算子、および表現
プログラム=データ構造アルゴリズムプログラミング方法プログラミング言語と環境
データ型
基本タイプ
整数
文字タイプ
本当のタイプ
コンストラクトタイプ
配列
構造
共有体
列挙タイプ
ポインタータイプ
ボイドタイプ
関数タイプ
定数と変数
絶え間ない
プログラムの実行中に価値が変わらない金額
直接定数(リテラル定数)
シンボル定数
変数
価値を変更できる量
変数には名前があります
コンパイル時にストレージユニットの割り当て
識別子
識別子は名前です
分類
キーワード
事前定義された識別子
printf
scanf
ユーザー識別子
英数字の下線で作られています
最初は手紙またはアンダースコアでのみ作ることができます
予約された言葉で繰り返すことはできません
大文字と小文字を区別
長さに注意してください
変数の定義
最初に定義してから使用します
定義された形式
タイプ名変数名1、変数名2;
位置
グローバル変数
関数の外
ローカル変数
一般的に関数の先頭に
複合ステートメントから始めます
データ型
整数データ
整数定数
小数
123、-456
オクタル
0(ゼロ)から始める
011 =》 9
-017 =》-15
018、019 =》間違っています
16進
0xから始めます
LまたはL(小文字)を追加して、長い整数定数と見なされる
0L
その後、uまたはuを追加すると、署名されていない符号なしです
123U
整数変数
int a;
VC 6.0はメモリに4バイトを占有します
分類
修飾子
署名
署名なし
短い
2バイト
長さ
4バイト
実際のデータ
本当の定数
実数は浮動小数点数とも呼ばれます
式フォーム
小数
数字と小数点で構成されています
0.123 .123 123。
インデックスフォーム
123e3または123e3 = 》123*10^3
注:Eの前後に数があり、Eの後の指数は整数でなければなりません
例:e3、2.13e3.5、.e、e
実際の変数
単一の精度
フロート
4バイト
有効な番号6-7
倍精度
ダブル
8バイト
15-16
長い二重精度
長いダブル
文字データ
文字定数
単一の引用に囲まれたキャラクター
たとえば、「a」、「a 'は異なります」、2つの連続した単一の引用が間違っています
キャラクターを逃がします
特別な形の文字は「\」で始まります
'\ n'、 '\ t'、
'\ ddd' 1〜3桁のオクタルに対応するASCII文字
char ch = '\ 101';
'\ xhh' 1-2ビット16進
char a = '\ x61';
文字変数
文字定数を保存するために使用されますが、1つだけが保存でき、1バイトを占めます
定義フォーム
Char文字変数1、文字変数2;
Char C1、C1 = 'A';
メモリ内の文字データのストレージ形式
この文字に対応するASCIIコードを保存します
整数と同様に、それらは整数として使用できます
0-127最高ビットは0であり、出力は%dで陽性です。
文字列定数
二重引用符で囲まれた文字のシーケンス
注:「A」と「A」の違い
2つの連続した「」は正しいです
違い
異なる表現
二重引用符
単一の引用」
サブテーマ3
別の定義
文字変数は文字定数を保存します
文字列を保存する文字配列
引用
二人は互いに引用することはできません
メモリに保存します
メモリ内の1バイト
文字列:メモリで占有されている「\ 0」バイト数で終了=実際の文字長1:「中国」には5文字があり、メモリ内の6バイトを占めています
特徴
文字列定数と文字列変数のみ
文字列は「\ 0」で終わり、「\ 0」なしで、文字列と呼ぶことはできません。
4ゼロ
0
番号0、アキュムレータ、カウンター、配列の添え字
'\ 0'
文字列の終了文字、ASCIIコード値は0であり、文字を表示できません。
ヌル
通常、ポインター割り当てに使用されるポインターは空です
「0」
文字0、ASCII値48
char-char =》 int
'7' - '0' => 7
char int => char
// case変換ch = 'b';
Char Charは無意味です
可変割り当て
定義されたときに変数に初期値を割り当てることは、初期化と呼ばれます
int a = 10;
int a; a = 10;
int a、b、c = 10;
int a、b、c = 10;
int a = b = c = 10;
int a、b、c;
半径を知って、ボールの境界、面積、ボリュームを見つける
シンボル定数
意味
#define pi 3.14
3.14をpiに置き換えます
特徴
単純化された文章、読みやすい
変更が簡単です
説明します
一般に、大文字と小文字の変数
範囲
#defineから始めます
#undefまたはファイルの終了で終了します
シンボル定数の値はスコープ内で変更できません
const double pi = 3.14;
さまざまな数値データの混合操作
混合操作
ハイダブル
←フロート
↑長い
↑符号なし
low int
←チャー、ショート
水平矢印は、必要な変換を示しています
たとえば、フロートタイプの2つの可変操作を最初に2倍に変換し、次に操作する必要があり、結果はダブルタイプです
垂直矢印は、変換の方向を示します
INTおよびダブル操作、INTをダブル操作と二重操作に直接変換すると、結果はダブルです
計算結果
関係する最高のタイプの操作
練習する
ch/i f*d-(f i)
算術演算子と算術式
オペレーターの特性
算術演算子
構成
- * /% -
%モジュール演算子
操作オブジェクトは整数のみになります
結果は配当のシンボルと同じです
アプリケーション:分解
n = 123それぞれシングル、10、数百を奪う
シングルディジットn 10桁n/10 n 0/10百桁n/100
ダウングレード10で割った
10以上を見つけて、単一の位置を取得します
オペレーターの優先順位と結節
評価は最初に優先度に依存します
()単一のアイテム
優先順位は、組み合わせに応じて同じです
左の組み合わせ:左から右への算術操作ルールに準拠しています
正しい組み合わせ:
モノグラフ
割り当てオペレーター
条件付き演算子
練習する
次のオペレーターのセットは、高から低いものから低い_____に配置されています
キャストタイプ変換(表示変換)
5.7%3 =》?
フォーマット(タイプ名)(式)
例:(int)5.7%3
(double)x y
X Yの結果をダブルに変換しますか?
(double)(x y)
xをダブルに変換し、yに追加します
使用
関数パラメーター
知らせ
危険な変換
高精度 - 》 interpision、直接インターセプト(丸めではない)
低精度 - 高精度、サプリメント0
一時的な1回限り
(int)x y
x値をintに変換した後、yで追加すると、x自体の値は変わらないままです
double x = 5.7(int)x 3.2結果:5 3.2 = 8.2 xは5.7変更されていません
自己増加と自己排除オペレーター
モノロジーオペレーター、
操作オブジェクト:変数にのみ使用できます。また、割り当て操作自体でもあります
3、(a b)間違っています
i = 3;
j = i;
右側のオペレーターは、最初にiの値を使用し、次に1を追加する操作を完了します
j = i;
i = i 1;
j = i;
左側の演算子、最初に1をIに追加する操作を完了し、次にi(1後)の値をjに割り当てます
i = i 1;
j = i;
練習する
int a = 3;
int a = 3;
知らせ
右から左への結合右バインディング
int a = 3;
i;
違いはありません、完全なi = i 1;
割り当てオペレーターと割り当て式
symbol =を割り当てます
形式:変数名=式
関数:右式の値を左側の変数に割り当てます
a = 10をaに割り当てる場合、割り当て操作を実行します(10をaのメモリユニットに入れます)
知らせ
バインディング:右結合
左側は不変であり、定数や式ではなくてはなりません
d = b = c 10;
異なるデータ型間の相互割り当て
実際のタイプ(float、double)は整数タイプ(int)に与えられ、丸めではなく小数部分を破棄し、0.5を丸める必要があります
int =》 float、double、値は変化していないままで、浮動小数点の形に保存され、尾は0で補完されます
char =》 int、char1バイト、int 4バイト、下位8ビットに入れます
署名されておらず、互いに同じタイプの符号なし
double =》 floatは、最初の7つの有効な数のダブルのフロートをインターセプトします
練習する
n = 3.4567の場合、フローティングポイント番号nと3桁目を丸めます
化合物演算子(算術文字割り当て演算子)
優先度
結合性(右)
構成
=、 - =、 *=、&=、 ^=、!=(関係)
知らせ
x = 3;
x = x 3;
x *= y 3;
x = x *(y 3)
割り当て番号の右側にいくつかのアイテムがあり、これはブラケットに相当します。
練習する
a = 3;
割り当て式
割り当てはオペレーターです
正しい組み合わせ
式には値があります
コンマの表現とコンマオペレーター
形式:式1、式2
解決プロセス
コンマ、左の組み合わせ
最優先事項
最初に式1を解きます...、右端の式の値をコンマ式全体の値として使用します
練習する
x =(y = 3、4*5)
x値20
x = y = 3、4*5
x値3、コンマ式全体の値は20です
使用
表現の連結
for(i = 1、j = 100; i <j; i、j-);
デリミタ
int x、y;
長さの演算子を見つけます
sizeof(変数|定数|タイプ)
メモリ内のこのタイプによって占有されているバイト数を見つける
malloc(sizeof(struct link))
シンプルなCプログラム
Cステートメントの概要
制御ステートメント
関数コールステートメント
関数(実際のパラメーターテーブルリスト);
scanf( "%d"、a);
表現ステートメント
中絶声明
複合ステートメント
{}に囲まれています
知らせ
文法では、声明と同等です。
化合物ステートメントの開始部分は変数を定義できます
複合声明の後、それを追加する必要はありません。
プログラムの3つの基本構造
シーケンシャル構造
[構造]を選択します
ループ(繰り返し)構造
割り当てステートメント
声明;
式との違い
式には値があります
データ入力/アウト
入力ステートメントと出力ステートメントはありません。出力と出力のみ機能
stdio.hヘッダーファイル
標準の入力ヘッダーファイル
出力
PutChar(CH)文字出力関数
文字をターミナルに出力します
CHは、char、int constant、変数、式にすることができます
printf(フォーマットコントロール、出力テーブル列)
フォーマットコントロールは、二重引用符で囲まれた文字列です
形式の説明
%およびフォーマット文字%d
通常の文字
出力、スペースコンマ
フォーマット文字
さまざまなデータ型、異なる形式文字
D形式
出力小数整数
実際の長さに応じた%d出力
%md、m出力フィールド幅、実際の数字数がm未満の場合、実際の数字数がmより大きい場合、左側の空間(右整列)を埋めるには、突き破ります。
%-MD-(ネガティブサイン)アライメント、左アライメント(右スペースの詰め物)
%ld long integer、%hd short integer
oフォーマット
オクタル形式の出力
サインビットは一緒に出力されます
X形式
16進形式の出力
%lx
u形式
署名されていない出力、小数
C形式
文字を出力するために使用されます
文字メモリは1つのバイトを占め、ASCIIコードは数値に応じて出力できます。
S形式
文字列の出力に使用されます
「\ 0」に会うまで%s
%MS
%-MS
%m.ns
出力はm列を占め、文字列の最初のn文字を取得します
%-m.ns
f形式
実際の数、フロート、ダブルを出力するために使用され、小数点以下の出力
%f
すべての整数部品は出力で、小数点以下の場所は出力です。
知らせ
すべての値が有効ではありません
%m.nf
出力はm列を占有します。ここでは、n 10桁が配置されます
知らせ
1つの小数点もあります
nビットを撮るとき、最初のビットカットは丸みを帯びています
%.0Fは分数部分を出力しません
%-m.nf
e-format
実質数を指数関数的に出力します
%e
システムは6つの小数点を指定し、指数パーツは3つの場所を占有し、eは1つの場所を占め、±1つの場所を説明します
%M.NE
G形式
実数の出力に使用するには、fまたはe形式で最短幅を自動的に選択します
出力番号の前身をポジティブおよびネガティブな兆候にします
printf( "%5d%d \ n"、a、b);
知らせ
x、e、gを除く小文字文字
データ型はフォーマット文字と一致します
タイプ
の数
脱出された文字を含むことができるコントロール文字列をフォーマットします
d、o、u、x、s、c、f、e、g、after%はフォーマット文字であり、その他は出力です。
出力%と%%を使用します
さまざまなシステムが異なります
入力
getchar()
文字入力、端末から文字を入力します
getchar()には引数がありません
scanf(フォーマットコントロール、アドレステーブル列)
フォーマットコントロールはprintfと同じです
フォーマット文字
通常の文字が入力されます
アドレステーブル列、変数のアドレス、文字列の最初のアドレス
注:%d%d、スペース、タブキー、およびキャリッジリターンは使用できません、コンマ
形式の説明
短い使用%HD、ダブルを使用する%LFまたは%LEを入力する
署名の場合は、%u、%d、%o、および%xを使用して入力できます。
入力データのドメイン幅を指定し、システムが自動的にインターセプトすることができます。
%が続いて *、指定された列の数がスキップされていることを示します
列の数を指定できますが、精度を指定することはできません。
scanf( "%7.2f"、&f);
知らせ
scanf関数、変数のアドレスを指定する必要があります
通常の文字が入力されます
%Cが文字、スペース、脱出された文字がすべて有効な入力に入るとき。
データを入力すると、次の状況が終了すると見なされます
遭遇スペース、タブキー、入力
指定されたドメイン幅で遭遇します=
違法投入
リレーショナル演算子とリレーショナル式
関係は実際にはより運用可能です
リレーショナル演算子
>、> =、<、<=
!=、==
優先度
算術以下
ボンディング
左の組み合わせ
リレーショナル式
法的表現をリンクします
値:論理値です
trueは1で表され、偽は0で表されます
練習する
a = 20;
a = 3の値;
知らせ
INTや二重操作など、2つの側面は一貫性がなく、システムは自動的に変換されます。
資格のある平等
int a == b?
FABS(A-B)<1E-6
論理演算子と論理式
論理演算子
&&、||、!
優先度
! モノロジーオペレーター
以下の関係&& ||より高い
論理式
値:論理値、trueは1で表され、falseは0で表されます
操作に参加するオブジェクト、非ゼロは真、ゼロはfalseを表します
知らせ
すべての論理操作がソリューションプロセス中に実行されるわけではありません
短絡現象
練習する
IFステートメント
IFステートメントの3つの形式
単一のブランチIFステートメント
形式:if(expression)ステートメント;
表現:法的表現
if(3);
ステートメント:単一のステートメント、空のステートメント、または複合ステートメントにすることができます
練習する
2つの整数を小から大部分に出力します
二重ブランチIFステートメント
形式:(式)ステートメント1;
注:elseはifと整合しています
練習する
nさえ真の式です
n%2 == 0
n/2*2 == n
!(n%2)
Chは英語の手紙です
ch> = '&& ch <=' z '||。
ジャッジリープ年
4で割ることができ、100で割ることはできません、4で割ることができ、上記と同じ400で割ることができます
年%4 == && year 100!= 0 ||
year%4 == 0 && year 100 ||(年%400)
整数AとBは同じ数です
A*b> 0
ラダータイプのIFステートメント
フォーマット:(式1)ステートメント1(式2)ステートメント2;
if(x <0)y = -1;
ステートメントの場合はネストされています
if(x> = 0)if(x> 0)y = 0;
注:最も内側のレイヤーから始まる場合、その他のペアは、その上にある場合は常に最も近い、対応のないもので常に使用されます
解決:
埋め込まれたifステートメントには他のものも含まれ、ifの数は他のものと同じくらいです
カーリーブレースを使用して、埋め込まれたIFステートメントの範囲を制限する
練習する
条件付き演算子
構成
?そして:
優先度:算数、関係、論理、条件、割り当て、コンマ
バインディング:右結合
条件付き表現
式1?式2:式3
評価順序:最初に式1、真のソリューション2、誤ったソリューション3を解き、この値を式全体の値として使用します
式2と3は1つだけ解決します
説明します
バインディング:右結合
int a = 1、b = 2、c = 3、d = 4;
タイプ
式1、2、および3の種類は異なる場合があります
a> b?1.5:2
高タイプの値
IFステートメントとの関係
IFステートメントの真および偽が同じ変数に値を割り当てられている場合
if(a> b)max = a;
max = a> b?
スイッチステートメント
マルチブランチを処理します
形式:switch(式){ケースケース1:ステートメント1;
説明します
スイッチ後の括弧内の式は、一般に、文字タイプ、整数タイプ、列挙タイプです
ケースの値は式タイプと同じです
ケースの機能は、エントリを表すラベルと同等であり、最後まで次のステートメントを実行し、デフォルト後に次のステートメントの一致する実行はありません
終了ステートメントの実行にはブレークが必要であり、スイッチステートメントを直接ジャンプすることができます。
それぞれの状況は異なる必要があり、そうでなければ矛盾します
各ケースとデフォルトステートメントが表示される順序は、実行結果に影響しません(Breakと組み合わせて使用)
複数のケースステートメントは、ステートメントのグループを共有できます
練習する
サイクル
ifおよびgoto loop
goto声明
フォーマット:GOTOステートメントラベル。
ステートメントラベルは、識別子の命名規則に準拠しています
GOTOラベル;
知らせ
ラベルの後、それは声明の前に配置され、ステートメントのコードとして使用されなければなりません。
ジャンプ場所
この関数で
一般的に、ifでループを形成します
できるだけ少なく使用し、複数のループから飛び出す
for()for()for()if()goto end;
その間
while(expression)ステートメント;
特徴
最初に式の価値を判断し、ステートメントを真の形で実行し、誤って終了する
知らせ
一方、有効な範囲の場合、最初のセミコロンで終了します
声明は、単一の声明、複合声明、または空の声明にすることができます。
ループを終了するループ本体(ステートメント)にステートメントがあるはずです
while(1)x;
デッドサイクル
i = 100;
whileの違い(x = 'a');
k = 2;
ループボディの実行?二流
練習する
1 2…100
したがって
while(expression);
特徴
最初にループ本体を実行し、式の値を判断し、真の実行、偽の出口を判断します
知らせ
ループ中の違い
ループ変数の初期値は、一度にループ本体を実行することはありません。
類似点
真の実行、偽の出口
練習する
分解とスプライス
分解された数
最終番号を取得します
/10レベルの削減
スクラッチ番号
低い位置が高くなり、高い位置が低くなります
(0*10)a)*10 b)*10 c
高と低いのは変わらないままです
T = 1;
doステートメント(1);
デッドサイクル
のために
形式:(式1;式2;式3)ステートメント。
説明します
式1、1回のみが実行されます
各式は省略でき、セミコロンは省略できません
式1と3は、単純な表現またはコンマの表現です。
練習する
ネスティング
乗算式表
印刷グラフィックス
疲れ果てた
いくつかのサイクルの比較
問題を解決します
4つのループは互いに置き換えることができ、Ifおよびgotoで構成されるループは推奨されません。
初期化
一方、ループの外で、式1の場合
終了条件
一方、その後、式2のために
i = 3;
実行注文
一方、そして最初に裁判官のために実行して、最初に実行してから裁判官
ループから抜け出します
一方、やり、このループを壊して終了し続けるために使用できます
壊す
ループ本体から抜け出し、ループを早期に終了します
練習する
素数を決定します
キーボードから正の整数を入力し、17を入力する場合、または出力17、19、23、29、31を出力します。
続行します
このループを終了し、ループ本体で実行されていないステートメントをスキップし、次回ループするかどうかを判断します(式、実行式3の場合)
配列
1次元配列の定義と参照
配列は、同じタイプのデータ要素のコレクションです
意味
データ型配列名[整数定数式];
配列名:配列の開始アドレスを表すアドレス定数
int a [10];
#define n 10 int a [n];
引用
配列名[subscript]
添え字は0からn-1からn-1から始まります
下付き文字整数定数、変数、式
初期化
すべての要素が初期値を割り当てます
int a [3] = {1,2,3};
すべての要素に初期値を割り当てると、[] = {] = {] = {0};
一部の要素は初期値を割り当てます
int a [10] = {1,2,3}; [1] = 2、a [9] = 0
一部の要素はデフォルト値です
int a [3] = {0,0,0};
int a [10]の違い;
配列の長さnと要素形式mが一貫していない場合
n> m、配列の最初のm要素のみが初期値に割り当てられ、残りはデフォルト値です
n <m、構文は間違っています
応用
要素の逆順
ハーフ検索を折ります
選別
バブルソート
[ソート]を選択します
手術
入れる
最初に後者を移動します
消去
最初に前面を移動します
移動(ループ左、右)
二次元配列
意味
データ型配列名[整数定数式1] [整数定数式2];
列ごとにメモリに保存し、行の順序が推奨されます
int a [n] [m];
引用
配列名[row subscript] [列subscript]
初期化
1次元配列と同じように、初期値を1つずつ要素に割り当て、順番に与えられます
int a [2] [3] = {1,2,3,4,5,6};
すべての要素は、最初の寸法サイズを省略できます
int a [] [3] = {1,3,4,5,6,7};
巻き毛の装具を使用して、ブランチに初期値を割り当てます
int a [2] [3] = {{1,2,3}、{4,5,6}};
int a [2] [3] = {{1,2}、{3,4}、{5,6}};
間違っている
一部の要素に初期値を割り当てます
int a [3] [4] = {{2}、{4}、{6}};
応用
行の添え字
ヤン・フイの三角形
特別なスクエアアレイ
スパイラルスクエアマトリックス
文字配列
意味
char配列名[整数定数式];
初期化
初期値を1つずつ割り当てます
char ch [] = {'a'、 'b'、 'c'};
文字列を初期値として指定します
char ch [] = {"hello"};
char ch [] = "hello";
char ch [] = {'h'、 'e'、 'l'、 'l'、 'o'、 '\ 0'};
文字配列と文字列の違い
文字配列の各要素は文字であり、最後の要素は「\ 0」である必要はありません
文字列のエンディング文字は「\ 0」です
入力/キャラクターアレイから
文字列の単一文字入力と出力
for(i = 0; i <5; i)printf( "%c%d |"、ch [i]、ch [i]);
各要素にアクセスします
文字列の入力と出力
%S形式
char ch [80];
scanf( "%s"、ch);
入力文字がメモリに保存され始めるかを示します
Enter、Tabキー、スペースエンド
最後に、システムは自動的に「\ 0」を埋めます
printf( "%s"、ch);
CHは配列の最初のアドレスであり、それに続く%Sが続きます。つまり、出力はこのアドレスから始まり、「\ 0」で終了します。
知らせ
配列名は、配列の開始アドレスを表します。
配列の中央から出力できます
scanf( "%s"、&ch [3]);
文字列処理関数
文字列出力関数
puts(ch);
CHは文字配列名にすることができます
キャラクターポインター
文字列定数
%sとの違い
出力を配置した後、ラインを自動的にラップします
文字列入力関数
gets(ch);
CHは文字配列名にすることができます
キャラクターポインター(正確なポインター)
gets(s1、s2);
%S入力との違い
GETSは戻ってきてのみ終了できます
文字列処理関数string.h
文字列リンクstrcat(文字配列1、文字列2)
前者は変数である必要があり、スペースサイズは2つの文字の合計を置くことができます。
後者の定数変数が利用可能です
後者の結果の「\ 0」のみが保持されます
練習する
文字列コピーstrcpy(文字配列1、文字列2)
前者は変数である必要があり、スペースサイズは2つの文字の合計を置くことができます。
後者の定数変数が利用可能です
その結果、文字2の前のコンテンツ「\ 0」が文字配列にコピーされ、「\ 0」も一緒にコピーされます。
練習する
strncpy(str1、str2、n)
str2の最初のn文字をstr1にコピーします
「\ 0」をコピーしないでください
文字列比較STRCMP(文字列1、文字列2)
すべての定数変数が可能です
注文:文字のASCII値を左から右に1つずつ比較する
終了:Encounter '\ 0'、または異なる文字
結果:0は平等を意味し、1> 2正値1、1 <2負の値-1
文字列が等しいかどうかを判断します
if(strcmp(s1、s2)== 0);
文字列長いストレン(文字列)
「\ 0」を除く実際の文字列の長さを見つけます
最初の「\ 0」の前の文字の数
練習する
小文字STRLWR(文字列)を変換する
キャピタルストラップ(文字列)を変換する
練習する
文字列で特殊文字を削除します
文字列コピー
文字列比較
文字列接続
統計単語数
メイン文字列にサブストリングが表示される回数を数える
フィルタリング方法を使用して、100以内に素数を見つける
挿入、削除します
関数
概要
定義:特定の機能を完了できるプログラム
知らせ
コンパイルユニット:ファイル
ソースプログラムでコンパイルします
Cの実行は、メイン関数から始まります
すべての関数は平行です。つまり、関数定義は互いに独立しています。
定義をネストすることはできません
関数は相互に呼び出すことができ、主な関数を呼び出すことはできません。
関数呼び出しはネストできます
分類
ユーザーの視点
ユーザー機能
専門的な問題を解決するためにユーザー定義されています
システム機能
標準関数、scanf
関数独自のフォーム
パラメーター関数があります
sqrt(n)
悲劇的な機能はありません
getchar()
戻り値の角度
返品値があります
strcmp(s1、s2);
返品値はありません
アクション範囲の角度
外部関数
内部関数
関数定義
パラメーター関数を使用した定義形式
ノンパラメーター関数の定義形式
空の関数
dummy(){}
関数パラメーターと関数値
パラメーター
正式なパラメーター
括弧内の関数を定義します
リダイレクト
実際の議論
パラメーターを使用する関数を呼び出します
メインチューン
説明します
関数を定義するときは、正式なパラメーターのタイプを指定する必要があります
形式:データ型フォーマルパラメーター名
実際の引数は、一定、変数、または式である場合がありますが、正確な値が必要です。
正式なパラメーターストレージユニットの割り当てとリリース
通話中に割り当て、実際のパラメーターの値を正式なパラメーターにコピーし、呼び出し後にリリースします
実際のパラメーターは、正式なパラメーターの一方向に渡されます。
関数の返品値
関数の返品値は、returnステートメントを通じて取得されます
処理される複数の返品声明の数、それが機能する
返されたステートメントの後のブラケットは省略でき、定数、変数、および式が正確な値を必要とする場合があります。
関数値のタイプ
関数返品値のタイプ
定義の時点で決定されます
関数タイプは、returnステートメントによって返されるタイプと矛盾しています
関数タイプは、返品値のタイプを決定します
関数にはリターンステートメントはありません
voidとして定義されない限り、不確実な値を返します
voidとして定義される返品値は不要です
返品は引き続き使用できますが、その後の値はありません
機能のデフォルトの返品値タイプはintです
関数の呼び出し
一般的な形式
関数名(リアルパラメーターテーブル列);
複数のパラメーター間のコンマ間隔
パラメーターの数、順序、およびタイプ(割り当て互換)が一貫しています
通話方法
関数ステートメント
printf( "ok");
関数式
x = 10 * sqrt(y);
関数パラメーター
max(max(x、y)、z);
呼び出しプロセス
正式なパラメーターの登録は、ストレージユニットに割り当てられ、実際のパラメーター値は正式なパラメーターに割り当てられます
実用的なパラメーター-》正式なパラメーター一元配置値転送
Nestedで複数の関数が呼び出されたら、最初の呼び出しに従って戻ります。
返品声明の終わり、または閉鎖}
呼び出された関数の宣言と関数のプロトタイプ
別の関数を呼び出し、条件を満たします
呼び出された関数が存在する必要があります(つまり、定義された関数)
ライブラリ関数
scanf
カスタム関数
マックス(x、y)
ライブラリ関数を使用します
ファイルの先頭で#includeを使用して、対応するヘッダーファイルを含める
stdio.h
Math.H
abs()、fabs()、pow()、sin()
string.h
strcpy()、strcat()、strcmp()
strlen()
ctype.h
malloc.h(stdlib.h)
malloc()、free()、calloc()
カスタム関数
呼び出された関数を宣言します
定義と宣言の違い
意義
関数タイプの関数名、正式なパラメーターテーブル列、および完全な関数本体定義は、関数関数の確立です
定義された(既存の)関数を実行します
の数
同じ名前、ファイルには、1つだけがあります
複数
位置
関数定義はネストできません
どの関数が呼ばれ、どこで宣言されますか?
範囲
内部関数(このファイル)、外部関数(その他のファイル)
その関数を宣言して、そのファイルを宣言します
関数プロトタイプ
C言語の関数宣言は、関数プロトタイプと呼ばれます
関数タイプ関数名(パラメータータイプ1、正式なパラメーター1、パラメータータイプ2、フォーマルパラメーター2 ...)
関数タイプ関数名(パラメータータイプ1、パラメータータイプ2 ...)
次の状況を宣言する必要はありません
最初に定義された、コールバック
すべての関数定義の前に、ファイルの先頭にある関数は、各メインコール関数を宣言する必要はありません。
関数の返品値は宣言なしでintです
機能へのネストされた呼び出し
別の関数を呼び出します
E = 1/2!
double fun(int n)nの要因を計算する
double E(int n)n項の合計を計算します
void main()
機能への再帰コール
直接再帰、間接的な再帰
ネストされた関数の呼び出しに似ていますが、同じ関数が呼び出されるたびに
再帰的に実装できる条件
次のような初期状況(終了条件):n <= 1
状況nは、状況n-1で説明できます:n *(n-1)!
注:最初に、再帰は条件付きです。
練習する
通常の問題解決
終了条件の結果を逆にします
3回コピーします
評価する
再帰は、非回復に変換できます
再帰的実装では、スタックを使用します
関数パラメーターとしての配列
配列要素は実際のパラメーターを作成します
変数と同じレベル
バリューパス
関数パラメーターとしての配列名
配列名、アドレス定数
アドレスを渡します
注記
定義:アレイはメインで個別に宣言し、関数と呼ばれる必要があります
タイプ:一貫性
サイズ:Shapeパラメーターグループのサイズは、Shapeパラメーターグループがサイズを指定できない場合があります。
配列名は、shapeパラメーターグループに配列の値をShapeパラメーターグループの開始アドレスに渡す代わりに、実際のパラメーターとして使用されます。 Shape Parameter GroupとReal Parameter Groupは、Shapeパラメーターグループの要素を変更します。
多次元配列は関数パラメーターを作成します
実際の引数、配列名を使用します
正式なパラメーター、各寸法のサイズを指定でき、最初のディメンションのサイズを省略できます。
練習する
1次元配列の最初のn要素を並べ替えます
1次元配列に2次元配列に各列の最小要素の行番号を保存します
ローカルおよびグローバル変数
ローカル変数
位置
関数内
複合ステートメントで
範囲
それを定義する関数
それを定義する複合ステートメント
サバイバル期間
コールされたときのストレージユニットの割り当て、最後にリリース(静的を除く)
説明します
メイン関数で定義された変数は、MIAN関数でのみ有効です
異なる関数は、同じ名前の変数を定義し、異なるオブジェクトを表し、メモリ内の異なるストレージユニットを占有し、互いに干渉しないことができます。
正式なパラメーターもローカル変数です
グローバル変数
位置
関数の外
範囲
定義からファイル宣言の終わりまで、その機能を宣言します
サバイバル期間
静的ストレージエリアは、プログラムが実行されるまで、常にメモリを取り上げ、リリースしません
説明します
関数:関数間の通信チャネルを増やします
使用することを少なくすることをお勧めします
サバイバル期間
一般的な
読みやすさ
すべての機能を変更できます。特定の瞬間に変数の値を決定することは困難です。
ソースファイルでは、グローバル変数はローカル変数と同じです
グローバル変数は、ローカル変数の範囲内で機能しません
最も近い原則を取ります
変数のストレージカテゴリ
範囲、寿命
可変および関数の特性
データ型
ストレージカテゴリ
メモリに保存する方法
静的ストレージ
動的ストレージ
自動変数
関数内のローカル変数が具体的に宣言されていない場合、デフォルトの自動は
動的ストレージエリアに割り当てられ、割り当てとリリースはシステムによって決定されます
範囲
それを定義する関数
サバイバル期間
コール、エンドリリースを割り当てます
特徴
システムを初期化することはできず、各呼び出しには手動の初期値が必要です
静的によって宣言されたローカルな不変
コールが終了し、ストレージユニットがリリースされず、最後のコールの値が終了します
範囲
ローカル変数と同じ
サバイバル期間
常にメモリを取り、リリースしません
特徴
システムは初期値を自動的に割り当てるか、または初期値を手動で割り当てることができ、初期化は1回のみ行われます。
最後の呼び出しの最後に値を保持します
登録変数を登録します
INT I、J = 10を登録します。
特徴
ローカル自動変数と正式なパラメーター、グローバル変数はそうではありません
レジスタの数は限られているので、あまりにも多くを定義することはできません
static int a = 10;
外部変数を外部変数を宣言します
ファイル内の外部変数を宣言します
グローバル変数の範囲を拡張します
位置
それを使用する関数で
ファイルの開始
extern int a、b;
ExternA、B;
複数のファイルを使用してプログラム内の外部変数を宣言します
1つのファイルは、別のファイルのグローバル変数を指します
位置
ファイルの開始
静的ストレージエリア
グローバル変数、静的によって宣言されたローカル変数
システムは、初期値を自動的に割り当てたり、初期値を手動で割り当てることができます。
動的ストレージエリア
ローカル変数(静的なし)
正式なパラメーター
毎回初期値を手動で割り当てます
内部および外部関数
内部関数(静的関数)
このファイルの他の関数によってのみ呼び出される機能
定義するときに関数名と関数タイプの前に静的を追加する
static int fun(int a、int b){}
外部関数
定義するとき、外部は最初にcrown冠され、外部関数を示します
関数は暗黙的に外部関数です
extern int fun(int x、inty){}
ポインター
概要
直接アクセス
変数名で
間接アクセス
ポインターが指し示す関係
アドレスを保存する変数は、通常の変数を指します
アドレスを保存する変数は、ポインター変数と呼ばれます
知らせ
ポインター
住所
1000
ポインター変数
アドレスを保存する変数
p
ポインター変数
意味
ベースタイプ *ポインター変数名。
int *p;
定義する場合、 *は操作を実行しません。つまり、Pの後にPがポインター変数であることを意味し、Pはintを指します。つまり、Pはint変数のアドレスを保存できます
pはポインター変数であり、アドレスは *pではなく変数pに保存されます
手術
割り当て
変数のアドレスを取ります
int x、 *p;
配列の最初のアドレスを取得します
int a [10]、 *p =&a [0];
ポインター変数は互いに割り当てられます
int x、 *p1 =&x;
P1とP2によって指されたタイプは同じでなければなりません。右側のポインター変数には正確なポイントがあります。
アプリケーションスペースの返品アドレス
int *p; p =(int *)malloc(sizeof(int));
malloc.hが含まれています
null値を割り当てます
int *p = '\ 0';
誤用を防ぐためにPを空にします
初期化
ストレージカテゴリベースタイプ *ポインター変数名=アドレス。
int x、 *p =&x;
算術操作
Pointer変数は、継続的なメモリユニットを指します。
INT A [10];
P1 P2意味がありません
リレーショナル操作
連続スペース
知らせ
int *p;
ポインター変数は、同じタイプの変数のみを指すことができます
アドレス演算子およびポインターオペレーター
&
操作オブジェクトは、定義された変数または配列要素である必要があります。
計算結果は、メモリ内の変数の最初のアドレスです
&3、&(x y)、変数エラーを登録します
*
操作オブジェクト、割り当てられたポインター、アドレス
関数:指定されたアドレスによって指された単位の内容を取得します
*および&操作は逆運用です
優先順位は、右側の組み合わせです
*&a => *(&a)=> *(1000)=> *pa => a
&*pa =>&(*pa)=>&(a)=> 1000 => pa
&*a => a
注:&変数、 *アドレス
ポインター変数はアドレスのみを保存できます
関数パラメーターとしてのポインター変数
ポインター変数は、関数パラメーターとパスアドレスとして使用されます
関数の実行中、Pointer変数の変化によって指される変数の値。
ポインターと1次元配列
変数のアドレス
配列の最初のアドレス:開始アドレス、配列名
配列要素へのポインター変数
int a [10];
ポインター変数を介したリファレンスアレイ要素
p = a [i] <=>*、bracket index operator p = a [8] a:adress conster、aは修正できます
i番目の要素&a [i]のアドレス
P i
ai
サブテーマ4
i番目の要素a [i]の値
*(P I)
*(a i)
ポインターメソッド
1次元配列へのポインターも添えてください
p [i]
a [i]
サブスクリプトメソッド