c - 在 C 中,字符如何工作

标签 c char ascii

在下面给出的程序中,我们将j 作为一个字符。 我们取 j=1 但 1 的 ascii 值是 49。那么为什么答案是 15? j 是整数吗?

#include<stdio.h>

int main()
{
    int i=0;
    char j;

    for(j=1 ; j <=5 ; j++)
    {
        printf("-%c\n",j);
        i=i+j;
        printf("%c\n",i);
    }

    printf("%d",i);

    return 0;
}

最佳答案

在循环中计算出数字 1、2、3、4、5 的总和确实等于 15。

在这个表达式中

i=i+j;
由于整数提升,

操作数 j 被转换为类型 int 并且类型 int 的结果存储在变量 中我

在这个声明中

printf("%d",i);

这个结果作为一个整数值被输出。

如果你想处理字符值“1”、“2”等,你可以像这样编写循环

for ( j = '1' ; j <= '5' ; j++ )

如果使用 ASCII 编码,则变量 i 将包含值 49、50、51、52、53 的总和。

关于c - 在 C 中,字符如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36216352/

相关文章:

c++ - Valgrind:来自复制构造函数的大小为 8 的无效写入

c - 如何在 C 中将 128 位整数转换为十进制 ascii 字符串?

c++ - 如何使用UTF8将代码点与freetype结合使用?

C - 并行写入和读取 FIFO 文件 - 意外行为

java - 有一个 char 引用数组中的对象

C:将参数传递给程序以将字符转换为 ASCII 值

c - 从原始字符转换为十六进制等效值时返回错误值

c - 如何在 async callbacks.c 和 action.c 之间共享变量

c - 数据结构中灵活的可变长度

c - C语言中如何将两个字符串的字符随机组合在一起?