当前位置: 代码迷 >> C语言 >> [求助]请问sizeof('a')的值为多少?
  详细解决方案

[求助]请问sizeof('a')的值为多少?

热度:805   发布时间:2007-11-08 15:04:18.0
[求助]请问sizeof('a')的值为多少?
在turbo c中,我得到sizeof('a')的值为2,为什么不是1,请帮忙解释一下.
搜索更多相关的解决方案: sizeof  turbo  解释  

----------------解决方案--------------------------------------------------------
以下是引用苦中求乐在2007-11-8 15:04:18的发言:
在turbo c中,我得到sizeof('a')的值为2,为什么不是1,请帮忙解释一下.

sizeof 把 'a' 当作 int 数值

/***********************************************/

#include <stdio.h>
int main(void)
{
char a;
printf("%u\n", sizeof(char)); /* 这样才对 */
printf("%u\n", sizeof a); /* 或这样,a 是 char 变量*/

getchar();
return 0;
}

[此贴子已经被作者于2007-11-8 15:16:01编辑过]


----------------解决方案--------------------------------------------------------
首先谢谢二楼的解答.
请看看我的理解对不? 字符型数据在计算机中自动转换为整数形式的ASCII码,所以经过sizeof运算后就得到基本整型int的字节数.

----------------解决方案--------------------------------------------------------
三楼的理解是正确的,它实际上是以ASCII存储的,所以C语言中的字符型数据是可以直接进行算术运算的。
----------------解决方案--------------------------------------------------------
明白了,多谢各位.
----------------解决方案--------------------------------------------------------
以下是引用苦中求乐在2007-11-9 13:23:09的发言:
首先谢谢二楼的解答.
请看看我的理解对不? 字符型数据在计算机中自动转换为整数形式的ASCII码,所以经过sizeof运算后就得到基本整型int的字节数.

补充一下, C 把 'a' 当作一个数值。

(char)'a' 这样的话就是 char 类型了。



----------------解决方案--------------------------------------------------------
原来你把a定义成int型了,int型变量在c中占两个字节;
char型是一个字节。。。
----------------解决方案--------------------------------------------------------
学习。
----------------解决方案--------------------------------------------------------

明白常量和变量的区别.
如果是定义一个char a='a';
那就是 不同的,在这里常量会强制转换,而变量不会.


----------------解决方案--------------------------------------------------------
  相关解决方案