Chinaunix
标题:
0 和 ' \0' 两个常量的类型和值都相同吗
[打印本页]
作者:
liangzhishao
时间:
2010-08-25 10:41
标题:
0 和 ' \0' 两个常量的类型和值都相同吗
< printf("%u %u\n", sizeof(0), sizeof('\0'));
> 4 4
大家帮我确认一下
作者:
lpy_222
时间:
2010-08-25 10:46
第二个4确实挺奇怪的,又被强转为Int了,你可以这样(char)‘\0’,就为1了。再说了,程序中不可能用到sizeof(0)这种,只应该有sizeof(int)
作者:
efolzl
时间:
2010-08-25 10:46
0,字面值常量,是int类型的~
'\0',字符常量,应该也是int类型的(不确定,没找到说明)~
作者:
hellioncu
时间:
2010-08-25 10:47
似乎以前讨论过,C和C++处理不同
作者:
liwangli1983
时间:
2010-08-25 10:52
'\0'字符字面量,C中为int ,C++中为char
作者:
zhuqing_739
时间:
2010-08-25 10:53
其实0和'\0'的值相同,都是0,不信,直接打印出来看看就知道了
printf("%d\n%d\n",0,'\0');
作者:
davelv
时间:
2010-08-25 11:04
C表达式中的字符字面常量如果没有强制声明类型,则会被扩展为int进行计算
作者:
pandaiam
时间:
2010-08-25 11:05
C表达式中的字符字面常量如果没有强制声明类型,则会被扩展为int进行计算
davelv 发表于 2010-08-25 11:04
正解.顶啊.
作者:
liangzhishao
时间:
2010-08-25 11:12
'\0'本身就是一个整数,是整型(int)。
之所以加上单引是为了和本地字符集中的空值相对应。
但是这个空值究竟是不是0呢,那就要看是什么字符集了,不过ascii码空是0。
作者:
flw
时间:
2010-08-25 11:31
本帖最后由 flw 于 2010-08-25 11:36 编辑
一个弱类型语言,天天讨论类型有意思麽。
一个没有明确提出上下文概念的语言,天天讨论上下文有意思麽。
作者:
davelv
时间:
2010-08-25 11:34
回复
10#
flw
还没有达到手中无剑的水平。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2