[c++] 単一引用符とCまたはC ++の二重引用符



Answers

いくつかのコンパイラでは、複数文字定数を使用できる拡張機能も実装されています。 C99規格によれば、

6.4.4.4p10: "複数の文字(例えば、 'ab')を含む、またはシングルバイトの実行文字にマップされない文字またはエスケープシーケンスを含む整数文字定数の値は、実装定義です。 "

これは次のようになります。

const uint32_t png_ihdr = 'IHDR';

結果の定数(これを実装するGCCで)は、各文字を取り出してシフトすることによって得られる値を持ちます。つまり、 'I'は32ビット値の最上位ビットになります。 明らかに、プラットフォームに依存しないコードを書いているなら、これに頼るべきではありません。

Question

CまたはC ++プログラミングでは、一重引用符と二重引用符はいつ使用しますか?




私は次のようなものを掘り下げていました:int cc = 'cc'; それは基本的には整数へのバイト単位のコピーです。 したがって、それを見る方法は、基本的に2cである 'cc'が整数ccの下位2バイトにコピーされるということです。 あなたがトリビアを探しているなら、

printf( "%d%d"、 "c"、 "cc"); 与えるだろう:

99 25443

それは25443 = 99 + 256 * 99

だから 'cc'は文字列ではなく複数文字の定数です。

乾杯




単一引用符はcharを表し、doubleは文字列を表します。

Javaでは、これも同じです。




文字には一重引用符が使用され、文字列には二重引用符が使用されます。

例えば..

 printf("%c \n",'a');
 printf("%s","Hello World");

出力

ハローワールド

その逆の場合にこれらを使用し、文字列には一重引用符を使用し、文字には二重引用符を使用しました。 ここでは、これが結果になります。

  printf("%c \n","a");
  printf("%s",'Hello World');

出力:

あなたはごみの値や予期せぬことがあります。そうであれば、このように出力されるかもしれません。

2番目のステートメントのために。 あなたは何も見ません。 もう一つのこと。 この後にさらに文がある場合。 彼らはあなたにも結果を与えません。

注意:PHP言語を使用すると、一重引用符と二重引用符を簡単に使用できます。




  • 'x'は整数で、マシンの文字セット内の文字xの数値を表します
  • "x"は2文字の長さの文字の配列で、 'x'後に'\0'



二重引用符は文字列リテラル用です。例:

char str[] = "Hello world";

一重引用符は一文字リテラルのためのもので、例:

char c = 'x';

EDIT Davidが別の答えで述べたように、文字リテラルの型はintです。




Links