C言語:最終配列の集中的なレビュー

配列記述の解像度とその初期値について:
例:(1)
int a [] [4] = {0,0};
例:(2)
int a [3] [4] = {0};

2つの説明と同様に、配列aの各要素は初期値0を取得できます。これから派生

例(3):int a [] [3] = {1,2,3,4,5,6,7};
その配列aには9つの要素が含まれ、最初の次元は3です。 。
この点に関して、int a [] [3] = {1,2,3,4,5,6,7};比較を行います-サイズ3の2次元配列の最初の次元。

注目に値するのは、
int a [] [4] = {0,0};この2次元配列aの最初の次元のサイズは1です。

エッジの知識(理解してください):
2次元配列aにm列がある場合、配列内の任意の要素a [i] [j]の位置を計算する式はi * m + j +1です。

個人的には、文字配列は数値配列よりも難しいです。
1つ目は、文字列と文字を把握することです。

2つの文字配列を初期化します。

char a[ ]="ABCDEF";

char b[ ]={
    
    'A', 'B', 'C', 'D', 'E', 'F'};

aの長さはbの長さよりも長いです。文字列と文字。

scanf( "%s%s"、a、b);
は、文字配列a、bの正しい入力形式です(以前のブログで説明しました)。コマンド文字&は必要ありません。

文字配列に関する正しい説明:
ASCII文字セット内の任意の文字を
文字配列に格納できます。文字配列の文字列は全体として入力および出力できます。
文字配列内の文字列をリレーショナル演算子と比較することはできません

文字配列の出力は、「\ 0」に遭遇すると自動的に折り返され、出力されます。

エラーが発生しやすいヒント
リレーショナル演算子を使用して単一の文字を比較できます
が、文字列の
場合、文字列間で適用するstrcat、strcmp、strcpy、strlenなどの関数を呼び出す前に#include <string.h>ヘッダーファイルが必要です。

詳細なエラープロンプト(ほとんどの初心者に共通のエラー
char s [5] = "abcde";
このタイプの配列sの初期化は間違っています。初心者として、比較を行い、
eが削除されていないことを確認しました。 :

#include<stdio.h>
int main()
{
    
    
	char s[5]="abcde";
	puts(s);
}

実行結果:

eを削除した後:

#include<stdio.h>
int main()
{
    
    
	char s[5]="abcd";
	puts(s);
}

動作結果:

その理由は、文字配列の「\ 0」もストレージユニットを占有するためです。これに気付かないと、文字が文字化けする可能性があります。

2つの文字列が等しいかどうかを判断するために、正しいステートメント
if(!strcmp(a、b))
は、if(strcmp(a、b)> 0)が一般的に使用されるためこのステートメントを指定します
if(strcmp(a、b) <0)if(strcmp(a、b)== 0)
は知識ブラインドゾーンです。

次に、共有する興味深いプログラミングの質問があります。

おすすめ

転載: blog.csdn.net/yooppa/article/details/112296620