C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

CとC++の文字リテラルの型の違い


C ++では、文字定数のサイズは charです。 。 Cでは、文字定数のタイプは整数( int )です。 )。したがって、Cではsizeof(‘a’)は32ビットアーキテクチャでは4であり、CHAR_BITは8です。ただし、sizeof(char)はCとC++の両方で1バイトです。

#include<stdio.h>
main() {
   printf("%d", sizeof('a'));
}

出力

4

#include<iostream>
using namespace std;
main(){
   cout << sizeof('a');
}

出力

1

どちらの場合も同じことをしています。ただし、Cではsizeof(‘a’)は整数として扱われるため、4を返します。ただし、C++では1を返します。文字として扱われます。


  1. C++文字列定数と文字定数の違い

    C ++では、一重引用符で囲まれた文字は文字リテラルです。文字型です。たとえば、「a」は、ASCIIベースのシステムでは値97のchar型です。 二重引用符で囲まれた1文字または文字列は、文字列リテラルを表します。これはconstchar[]型であり、文字列の長さ+1のサイズの配列を参照します。その余分な文字は文字列の終わりを示すためにあります。 文字列リテラルは、「abcdefg」のように任意の長さにすることができます。文字リテラルには、ほとんどの場合、1文字だけが含まれます。これらが印刷されるとき、文字列リテラルは、文字列で最初の\0またはNULL文字が検出されるまで印刷されます。

  2. C ++の文字リテラルとは何ですか?

    文字リテラルは、コンピュータプログラムのソースコード内で単一の文字の値を表現するためのプログラミングにおける一種のリテラルです。 C ++では、文字リテラルは定数文字で構成されます。これは、一重引用符で囲まれた文字で表されます。文字リテラルには2種類あります- 「a」などのchar型の小文字リテラル タイプwchar_tのワイド文字リテラル(Laなど) 文字リテラルに使用される文字は、改行(\ n)、円記号(\)、一重引用符()、doubleなどの予約文字を除き、任意のグラフィック文字にすることができます。引用符( )。予約文字はエスケープシーケンスで指定されます。たとえば、 例 #in