分享知识

与大家一起分享知识

C++博客 首页 新随笔 联系 聚合 管理
  19 Posts :: 3 Stories :: 45 Comments :: 0 Trackbacks
在C中,sizeof('a')的输出值是4(32位编译器,如GCC)或者2(16位编译器,如TC);在C++中,sizeof('a')的输出值是1,因为在C中,字符常量默认是一个int型的值,而在C++中它默认是一个char类型的值。为什么在C++中'a'被默认为char类型呢?我理解在C++中,有重载函数这个特性,例如:
void read(char var);
void read(int var);
如果我们调用这条语句:read('a');我们实际调用的是函数read(char var);然后如果C++中把'a'当成int类型来处理的话,这时候就会调用read(int var);这样的话就和我们的习惯不符.而在C中没有重载的概念,所以不会出现这样的情况.
posted on 2006-04-02 21:17 史传红 阅读(362) 评论(0)  编辑 收藏 引用 所属分类: C/C++细节知识

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理