CおよびC ++の文字サイズはどれくらいですか?私が知る限り、charのサイズはCとC ++の両方で1バイトです。
#include <stdio.h>
int main()
{
printf("Size of char : %d\n", sizeof(char));
return 0;
}
#include <iostream>
int main()
{
std::cout << "Size of char : " << sizeof(char) << "\n";
return 0;
}
驚きはありません、どちらも出力を提供します: Size of char : 1
今、私たちは、文字は次のように表現されていることを知っている'a'、'b'、'c'、'|'、...だから、僕はこれらに上記のコードを変更しました:
C:
#include <stdio.h>
int main()
{
char a = 'a';
printf("Size of char : %d\n", sizeof(a));
printf("Size of char : %d\n", sizeof('a'));
return 0;
}
Size of char : 1
Size of char : 4
C ++の場合:
#include <iostream>
int main()
{
char a = 'a';
std::cout << "Size of char : " << sizeof(a) << "\n";
std::cout << "Size of char : " << sizeof('a') << "\n";
return 0;
}
Size of char : 1
Size of char : 1
なぜsizeof('a')CとC ++で異なる値が返されるのですか?
"%|"フォーマットが必要とint引数(またはに促進何かをint)。sizeofタイプの結果を生成しsize_tます。intキャストを使用するように変換するか、実装でサポートされている場合はを使用します"%zu"。