C语言问题??

#include<stdio.h>#defineL4intmain(){charn[2][L+1]={"8090","9198"};intj,c;for(j=L-1;j>... #include <stdio.h>

#define L 4

int main()
{
char n[2][L + 1] = { "8090", "9198" };

int j, c ;

for (j = L - 1; j >= 0; j--)
{
c = n[0][j] + n[1][j] - 2 * '0';
n[0][j] = c % 10 + '0';
}

for (j = 0; j <= 1; j++)
{
puts(n[j]);
}

return 0;
}

c = n[0][j] + n[1][j] - 2 * '0';
这一句是什么意思
2 * ‘0’不是等于96吗
展开
 我来答
百度网友94f02eb
2021-04-22 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4358万
展开全部
c = n[0][j] + n[1][j] - 2 * '0';
你说的是对的, 2*'0' 是 2乘以0的ASCII码,是 96
整个算式,都是用的数字的ASCII 进行的运算。
整个运算过程,就是循环使用了下面 这个数组里的,每个元素的每个数字字符的ASCII码。
char n[2][L + 1] = { "8090", "9198" };
你对应一下,就可以看明白了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式