c++ 文字列リテラル バックスラッシュ - 単一引用符とCまたはC ++の二重引用符





6 Answers

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

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

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

const uint32_t png_ihdr = 'IHDR';

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

キャリッジリターン ダブルクォーテーション エスケープシーケンス

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




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



  1. single quotecharacterためのcharacterです。
  2. double quotestringです。



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

char str[] = "Hello world";

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

char c = 'x';

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




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

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




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

例えば..

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

出力

ハローワールド

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

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

出力:

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

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

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




Related