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"
。