为了账号安全,请及时绑定邮箱和手机立即绑定

C/C+中字符(A)的大小

C/C+中字符(A)的大小

C++ C
梦里花落0921 2019-06-21 17:10:56
C/C+中字符(A)的大小C和C+中字符的大小是多少?据我所知,C和C+中字符的大小都是1字节。在C中:#include <stdio.h>int main(){   printf("Size of char : %d\n",sizeof(char));   return 0;}在C+中:#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 : 1Size 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 : 1Size of char : 1为什么sizeof('a')在C和C+中返回不同的值?
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

在C中,字符的类型常量喜欢'a'实际上是int,大小为4(或其他一些依赖于实现的值)。在C+中,类型是char这是两种语言之间许多小差异之一。


查看完整回答
反对 回复 2019-06-21
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

正如保罗所说,这是因为'a'intC,但achar在C+中。

我在几年前写的文章中介绍了C和C+之间的具体区别,在:http://david.tribble.com/text/cdiffs.htm


查看完整回答
反对 回复 2019-06-21
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

在C语言中,字符的类型是INT焦耳在C+中。这在C+中是必需的支撑功能过载..参见此示例:

void foo(char c){
    puts("char");}void foo(int i){
    puts("int");}int main(){
    foo('i');
    return 0;}

产出:

char


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 706 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信