返回信息流rt
这是一条镜像帖。来源:北邮人论坛 / cpp / #32449同步于 2009/11/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
为什么sizeof('A')在c中是4而在c++中是1。。。
huang991301
2009/11/30镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
re,sizeof不是函数,是运算符
【 在 jokerlee (Jackal The Dire) 的大作中提到: 】
: C里面是整形提升, sizeof实际上是个运算符, char short int 在运算时都会提升成int 或者 unsigned int
那为什么 C++ 不这么做呢?
在 C++ 中,sizeof 也是 operator 啊..
【 在 jokerlee (Jackal The Dire) 的大作中提到: 】
: C里面是整形提升, sizeof实际上是个运算符, char short int 在运算时都会提升成
: int 或者 unsigned int
jokerlee兄:
我做了下实验( gcc-4.3)
当变量的类型为char, short, int 时
sizeof的值分别为 1 2 4
但sizeof( 'a' ) 的值为4
也就说C语言中char型变量是1字节的, 而字符常量是 4 字节的。
【 在 jokerlee 的大作中提到: 】
: C里面是整形提升, sizeof实际上是个运算符, char short int 在运算时都会提升成int 或者 unsigned int
恩,“C语言中char型变量是1字节的, 而字符常量是 4 字节的“
C语言参考手册里写
在 C 中,单字符常量的类型是int,但在 C++ 中为char
这应该是规定的问题
【 在 bitman 的大作中提到: 】
: jokerlee兄:
: 我做了下实验( gcc-4.3)
: 当变量的类型为char, short, int 时
: ...................
【 在 bitman 的大作中提到: 】
: jokerlee兄:
: 我做了下实验( gcc-4.3)
: 当变量的类型为char, short, int 时
: ...................
sizeof('a')=4是因为对‘a’进行运算,把'a'提升为整形,所以为4。转自jokerlee