码迷,mamicode.com
首页 > 编程语言 > 详细

[C/CPP系列知识] Type difference of character literals 和 bool in C and C++

时间:2015-06-17 00:19:33      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

C/C+中的每一个常亮(every literal)都是有类型的,例如10 就是int型的,因此siziof(10)和sizeof(int)是相同的,但是字符型常亮(‘a’)在C和C++中有不同的变量类型。

在C中,‘a’被认为是int形,在C++中,‘a’被认为是char型。

int main()
{
   printf("sizeof(‘V‘) = %d sizeof(char) = %d", sizeof(V), sizeof(char));
   return 0;
}

结果:

C result – sizeof(‘V’) = 4 sizeof(char) = 1

C++ result – sizeof(‘V’) = 1 sizeof(char) = 1

上述行为也可以体现C++的函数重载

void foo(char c)
{
   printf("From foo: char");
}
void foo(int i)
{
   printf("From foo: int");
}
 
int main()
{
   foo(V);
   return 0;
}

 

则调用void foo(char c)

 

 

3) Types of boolean results are different in C and C++. 

// output = 4 in C (which is size of int)
printf("%d", sizeof(1==1)); 

// output = 1 in c++ (which is the size of boolean datatype)
cout << sizeof(1==1); 

 

[C/CPP系列知识] Type difference of character literals 和 bool in C and C++

标签:

原文地址:http://www.cnblogs.com/diegodu/p/4581986.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!