【问题标题】:How can you assign a character value to a integer type variable in C?如何将字符值分配给 C 中的整数类型变量?
【发布时间】:2014-02-19 10:08:20
【问题描述】:

在 C 中,

...
int num = 'a';
...

我的问题很简单。如何在 C 语言中将诸如 '0'、'a'、'b' 之类的字符分配给整数类型变量而不会出现任何类型错误?

【问题讨论】:

  • @AnshDavid 答案错误。问题中没有任何转换,“强制转换”意味着使用显式转换。
  • @AnshDavid 类型转换是我写(type)value 以便将value 转换为type 类型。

标签: c char int


【解决方案1】:

(对不起,我看错了问题并写了评论,我的错)----->

int main()
{

    int num = 'a';
    printf("%c", num);
return 0;
}   

输出

a

【讨论】:

    【解决方案2】:

    由于历史原因(大部分),字符常量在 C 中属于 int 类型。

    但即使它们不是,像这样的初始化

    int num = 'a';
    

    或类似的作业

    num = 'a';
    

    仍然是完全合法的。任何数字类型的值都可以分配给任何(其他)数字类型的变量,并且该值将被隐式转换(这可能涉及表示形式的更改和/或溢出的风险)。

    char 以及它的亲戚unsigned charsigned char 都是数字类型,特别是整数类型。

    【讨论】:

      【解决方案3】:

      看看herehere。每个字符都是一个数字,实际上计算中的一切都是数字,只是其中一些(取决于类型和值)被渲染为字符。

      用于存储字符的变量类型应该是charwchar_t,但也可以是任何其他类型,因为它们都只是内存中的数字。

      【讨论】:

        【解决方案4】:

        你可以。在 C 中,字符常量的类型为 int。这使得它与 C++ 有点不同。

        【讨论】:

          【解决方案5】:

          字符只是一个整数值的表示。比如'0'可以写成0x30或者48'a'0x61或者97的替代品,等等

          所以这个分配是完全有效的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-10-29
            • 2012-03-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-04-03
            相关资源
            最近更新 更多