标题:‘a’不是应该是int类型吗?求大侠解惑。
取消只看楼主
powerfrank
Rank: 2
等 级:论坛游民
帖 子:31
专家分:37
注 册:2018-4-25
结帖率:80%
已结贴  问题点数:20 回复次数:1 
‘a’不是应该是int类型吗?求大侠解惑。
#include <stdio.h> /*编译预处理命令 标准输入输出头文件 */
#include <stdlib.h> /*编译预处理命令 标准库头文件 */

int main(void) /* 主函数 */
{
    char c;/* 定义c为字符变量 */

    printf("%d %d %d\n", sizeof 'a' , sizeof (char) , sizeof c );/* 输出三个值并换行 */

    system("PAUSE"); /* 从程序中调用“PAUSE”命令 */

    return 0; /* 返回0值 */
}

运行结果是

1   1   1

预想的结果是

4    1    1

‘a’不是应该是int类型吗?值应该是 4 啊,为何会是 1 呢?哪位大侠帮忙解解惑。
搜索更多相关主题的帖子: int 类型 命令 sizeof PAUSE 
2018-11-07 17:56
powerfrank
Rank: 2
等 级:论坛游民
帖 子:31
专家分:37
注 册:2018-4-25
得分:0 
回复 4楼 no1xijin
我用visual studio 2012跑的。

我的理解是 'a' 相当于是十进制97,是个常量。这个值所在的内存地址应该是被定义为int类型。

现在int类型一般是4个字节32位。

跑出1,这把我整懵了。难道我理解有误?

[此贴子已经被作者于2018-11-7 21:06编辑过]

2018-11-07 21:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491061-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089303 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved