C和C ++中的字符大小是多少?据我所知,在C和C++中,char的大小均为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
为什么在C和C++中sizeof('a')
返回不同的值?
"%|"
格式要求传入一个int
类型的参数,或者是能够被提升为int
类型的其他类型。sizeof
操作返回的结果是size_t
类型。你可以使用强制类型转换将其转换为int
类型,或者如果你的实现支持的话,使用"%zu"
格式。 - Keith Thompson