ホームページ  >  記事  >  バックエンド開発  >  C言語におけるchar型データのメモリ上での格納形式は何ですか?

C言語におけるchar型データのメモリ上での格納形式は何ですか?

青灯夜游
青灯夜游オリジナル
2021-01-28 18:29:3115997ブラウズ

C言語では、char型データのメモリ上への格納形式は「ASCIIコード」です。 C言語では、文字定数を文字変数に入れることは、実際に文字そのものをメモリユニットに入れるのではなく、文字に対応するASCIIコードを記憶ユニットに入れることになります。

C言語におけるchar型データのメモリ上での格納形式は何ですか?

#このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。

C言語では、char型データのメモリ上への格納形式は「ASCIIコード」です。 #チュートリアルの推奨事項: 「

c 言語チュートリアル ビデオ

#」

c 言語の文字型

文字データ型は、文字です。

1. 文字データの表現

文字データは、一重引用符で囲まれた文字です。例:
'a'、'b'、'='、' '、'?' はすべて有効な文字データです。
C 言語では、文字データには次の特徴があります。

文字データは一重引用符でのみ囲むことができ、二重引用符や他の括弧で囲むことはできません。

文字データには、文字列ではなく単一の文字のみを使用できます。

文字には、文字セット内の任意の文字を使用できます。ただし、数値を文字型として定義した後は、数値演算に参加できなくなります。たとえば、「5」と 5 は異なります。 「5」はキャラクターデータなので操作に参加できません。

#エスケープ文字

エスケープ文字は特殊文字です。エスケープ文字はバックスラッシュ「\」で始まり、その後に 1 つ以上の文字が続きます。エスケープ文字は、文字の本来の意味とは異なる特定の意味を持つため、「エスケープ」文字と呼ばれます。

エスケープ文字は主に、通常の文字では表現することが難しい制御コードを表すために使用されます。

#一般的に使用されるエスケープ文字とその意味 エスケープ文字 \ n \t \b入力13用紙フィード12#バックスラッシュ文字"\"#34##\aリング7# #####################################

2. 文字型指定子

文字変数の型指定子は char です。文字変数型に定義されている形式と記述規則は、整数変数の場合と同じです。例:
char a,b;

3. メモリ内の文字変数の保存形式と使用法

各文字変数には 1 バイトのメモリ領域が割り当てられるため、1 文字しか格納できません。文字値は、ASCII コードの形式で変数のメモリ ユニットに格納されます。

たとえば、x の 10 進 ASCII コードは 120、y の 10 進 ASCII コードは 121 です。 「x」と「y」の値を文字変数 a と b に代入します:
a='x';
b='y';
は、実際には 120 と 121 のバイナリ コードをユニット a と b に格納します。
#例: 文字変数に整数を代入します。

#include<stdio.h>
int main(void)
{
    chara,b;
    a=120;
    b=121;
    printf("%c,%c\n",a,b);
    printf("%d,%d\n",a,b);
    return0;
}

このプログラムでは文字型としてaとbを定義していますが、代入文では整数値を代入しています。結果から、a と b の値の出力形式は、printf 関数の書式文字列内の書式文字に依存します。書式文字が "c" の場合、対応する出力変数の値は文字 文字になります. フォーマット文字が「d」の場合、対応する出力変数の値は整数になります。

#これからわか​​ります:

(1) 小文字の ASCII コードは大文字の ASCII コードより 32 大きいです

(2) 次の ASCII コードは前の ASCII コードより大きいです

(3) '3' を 3 に変更するには、'3' が必要です-'0'= 3

4. 文字列

文字列は、二重引用符のペアで囲まれた一連の文字です。例: 「CHINA」、「C プログラム」、「$12.5」などはすべて有効な文字列です。

文字列と文字は異なります。これらの主な違いは次のとおりです:

文字は一重引用符で囲まれ、文字列は引用符で囲まれます。二重引用符で囲みます。

文字は 1 文字のみですが、文字列には 1 つ以上の文字を含めることができます。

文字データを文字変数に割り当てることはできますが、文字列を文字変数に割り当てることはできません。

文字は 1 バイトのメモリ空間を占有します。文字列が占めるメモリのバイト数は、文字列のバイト数に 1 を加えたものと等しくなります。追加したバイトには文字「\0」(ASCIIコードは0)が格納されます。これで文字列記号の終わりです。

たとえば、メモリ内で文字列「C プログラム」が占めるバイト数は次のとおりです: 10 バイト

文字 'a' ただし、両方ともたった1文字と文字列「a」では、メモリ内の状況が異なります。
'a' はメモリ内で 1 バイトを占有し、「a」はメモリ内で 2 バイトを占有します。

プログラミング関連の知識の詳細については、次を参照してください:

プログラミング教えます! !

エスケープ文字の意味

ASCII コード

Enter と改行

10

次のタブの位置に水平にジャンプします

9

#Backspace

8

##\ r

\f

##\\

##92

\'

一重引用符文字
#39

##\”

二重引用符文字

##\ddd

1 ~ 3 の 8 進数で表される文字

\xhh

1 ~ 2 桁の 16 進数で表される文字

以上がC言語におけるchar型データのメモリ上での格納形式は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。