C 和 C++ 中 char 的区别?
Difference between char in C and C++?
我知道 C 和 C++ 是不同的语言。
代码-C
#include <stdio.h>
int main()
{
printf("%zu",sizeof('a'));
return 0;
}
输出
4
代码- C++
#include <iostream>
int main()
{
std::cout<<sizeof('a');
return 0;
}
输出
1
在这个答案中,用户 Kerrek SB(438k Rep.)
讲述了 C++ 中的类型,也没有提到 char
既没有 int
也没有提到积分。
C++中的char是整数类型还是严格的char类型?
is char in C++ is integral type or strict char type ?
使用 type_traits 让您知道类型:
#include <iostream>
#include <type_traits>
int main()
{
std::cout << std::is_integral<char>();
}
输出:
1
is char in C++ is integral type or strict char type ?
字符类型,例如 char
,是 C++ 中的整数类型。
C中的窄字符常量类型是int
,而C++中的窄字符字面量类型是char
。
正如其他人提到的,在 C 中 'a'
是 char 常量并被视为整数。
在 C++ 中它是整数。
您还可以使用 RTTI(运行 时间类型信息)检查 C++ 中 char c = 'a'
和 'a'
之间的区别,如下所示:
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
char c = 'a';
// Get the type info using typeid operator
const type_info& ti2 = typeid('a');
const type_info& ti3 = typeid(c);
// Check if both types are same
if (ti2 != ti3)
cout << "different type" << endl;
else
cout << "same type"<< endl;
return 0;
}
输出为:same type
。
但是,char c = 'a'
和 'a'
在 C 中是不同的。
我知道 C 和 C++ 是不同的语言。
代码-C
#include <stdio.h>
int main()
{
printf("%zu",sizeof('a'));
return 0;
}
输出
4
代码- C++
#include <iostream>
int main()
{
std::cout<<sizeof('a');
return 0;
}
输出
1
在这个答案中,用户 Kerrek SB(438k Rep.)
讲述了 C++ 中的类型,也没有提到 char
既没有 int
也没有提到积分。
C++中的char是整数类型还是严格的char类型?
is char in C++ is integral type or strict char type ?
使用 type_traits 让您知道类型:
#include <iostream>
#include <type_traits>
int main()
{
std::cout << std::is_integral<char>();
}
输出:
1
is char in C++ is integral type or strict char type ?
字符类型,例如 char
,是 C++ 中的整数类型。
C中的窄字符常量类型是int
,而C++中的窄字符字面量类型是char
。
正如其他人提到的,在 C 中 'a'
是 char 常量并被视为整数。
在 C++ 中它是整数。
您还可以使用 RTTI(运行 时间类型信息)检查 C++ 中 char c = 'a'
和 'a'
之间的区别,如下所示:
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
char c = 'a';
// Get the type info using typeid operator
const type_info& ti2 = typeid('a');
const type_info& ti3 = typeid(c);
// Check if both types are same
if (ti2 != ti3)
cout << "different type" << endl;
else
cout << "same type"<< endl;
return 0;
}
输出为:same type
。
但是,char c = 'a'
和 'a'
在 C 中是不同的。