----------------解决方案--------------------------------------------------------
在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语言中的字符型数据是可以直接进行算术运算的。
----------------解决方案--------------------------------------------------------
明白了,多谢各位.
----------------解决方案--------------------------------------------------------
首先谢谢二楼的解答.
请看看我的理解对不? 字符型数据在计算机中自动转换为整数形式的ASCII码,所以经过sizeof运算后就得到基本整型int的字节数.
补充一下, C 把 'a' 当作一个数值。
(char)'a' 这样的话就是 char 类型了。
----------------解决方案--------------------------------------------------------
原来你把a定义成int型了,int型变量在c中占两个字节;
char型是一个字节。。。
----------------解决方案--------------------------------------------------------
学习。
----------------解决方案--------------------------------------------------------
明白常量和变量的区别.
如果是定义一个char a='a';
那就是 不同的,在这里常量会强制转换,而变量不会.
----------------解决方案--------------------------------------------------------