很愧对老师这个职业,快帮帮我呀!不胜感谢
是个很简单的题,可是我就是不知道为什么,是这样的结果:
在pc机中,用sizeof()测试一下‘\n’在内存中的字节数,我郁闷呀,,,我认为是1,因为‘\n’是一个字符型常量,占一个字节,,,为什么上机运行时,结果却是2,
如下程序:
main()
{ printf("%d",sizeof('\n'));}
难道是因为字符型常量在内存中是以ASCII码的形式表示的吗???请各路豪杰帮帮我吧,不然我愧当一个老师呀,我的学生还饿渴的等着我呢!!!
----------------解决方案--------------------------------------------------------
''就表示char类型了 两个东西\和n当然是两位拉 挖哈哈~
是不是哦 老师~
----------------解决方案--------------------------------------------------------
字符型常量在内存中是以ASCII码表示的,但这也不能说明什么问题啊。‘\n’是转义字符啊,本身应该就是一个字符嘛,所以我认为还是1。我并不赞成楼上所说的。
----------------解决方案--------------------------------------------------------
这好象是编译器的问题吧,你把这段代码分别放在trubro C和Visual C++上运行,会有不同的结果。
----------------解决方案--------------------------------------------------------
应该是这个原因吧
你说的"\n"本身是个字符串 后面还有一个结束的"\n"所以是两个 ----------------解决方案--------------------------------------------------------
刚才搞笑了 我也不知道了
----------------解决方案--------------------------------------------------------
以下是引用hongspirit在2005-11-8 12:59:06的发言:
你说的"\n"本身是个字符串 后面还有一个结束的"\n"所以是两个
你说的"\n"本身是个字符串 后面还有一个结束的"\n"所以是两个
不是"\n",你说的是字符串数组里的,要有'\0'作为结束标识.
----------------解决方案--------------------------------------------------------
我认为2楼说的正确,这里就是把\n看成两个字符了。
----------------解决方案--------------------------------------------------------
=1
[此贴子已经被作者于2005-11-8 17:55:16编辑过]
----------------解决方案--------------------------------------------------------
结果是一,这个应该和编译器没有关系,因为是char类型的,你看看哪写错了么!
----------------解决方案--------------------------------------------------------