11问答网
所有问题
main() {int a=353; char b; b=a; printf("%c\n",b);
main()
{int a=353;
char b;
b=a;
printf("%c\n",b);
}
输出的是a
为什么?
举报该问题
推荐答案 2017-12-30
b为字符型变量,单字节,a=353赋值给b时,由于超出单字节表达范围,产生溢出,实际赋给a的值是溢出后的余值,即 a%256 后的值,等于 97,而97对应的ascll字符是‘a’
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://11.wendadaohang.com/zd/FF7qv7vq8M7S484PSFM.html
其他回答
第1个回答 2017-12-30
变量b为char型,只有一个字节的存储空间,353超过了,所以做了截断,只保留的低字节,也就是353%256==97,也就是字符'a'的
ascii码
,所以输出字符a本回答被提问者采纳
相似回答
int
a=
100;
char
b=
’A’;
printf(
“\n%d
,%c
”
,a,
a
);
printf(“\
n%c
...
答:
所以结果是 100,d A,65
大家正在搜
int a=1,b=2,c=3;
int main(void)含义
若有定义int a[2][3]
int型乘以floate型结果
double和float的区别
char和int
char a[10]
若有以下定义char a
已知char a
相关问题
main() {char a='a',b; printf(%...
#include<stdio.h> main() { int...
main() { int a='A',b; char c=9...
main(){ char a='a',b;printf("%...
main() { char a='a',b; printf(...
void main() { char a,b; a='a';...
#include<stdio.h> main() { cha...
main() { char a,b,c; scanf("%c...