在下面给出的程序中,我们将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/