相关疑难解决方法(0)

为什么C字符文字而不是字符?

在C++中sizeof('a') == sizeof(char) == 1.这具有直观意义,因为它'a'是一个字符文字,并且sizeof(char) == 1由标准定义.

然而,在C中sizeof('a') == sizeof(int).也就是说,看起来C字符文字实际上是整数.有谁知道为什么?我可以找到很多关于这个C怪癖的提及,但没有解释为什么它存在.

c c++ sizeof char

101
推荐指数
7
解决办法
2万
查看次数

为什么sizeof('c')返回4而不是1?

可能重复:
为什么C字符文字的内部而不是字符?

http://ideone.com/lHYY8

int main(void)
{
        printf("%d %d\n", sizeof('c'), sizeof(char));
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么sizeof('c')返回4而不是1?

c

4
推荐指数
1
解决办法
328
查看次数

sizeof(c)和size('a')给出不同的结果.(c是字符变量)

可能重复:
为什么C字符文字的内部而不是字符?
为什么sizeof('a')在C中是4?

#include<stdio.h>
int main()
{
  char ch;
  fflush(stdin);
  ch=getchar();
  printf("ch= %d a=%d char=%d", sizeof(ch),sizeof('a'),sizeof(char));
}
Run Code Online (Sandbox Code Playgroud)

我输入'a'(不带引号)作为输入,我在gcc 4.5.1版中得到的输出是:

ch= 1 a=4 char=1
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如果sizeof(c)1,那又怎么sizeof('a')4

c ascii char

2
推荐指数
1
解决办法
536
查看次数

标签 统计

c ×3

char ×2

ascii ×1

c++ ×1

sizeof ×1