的答案是问号和D求详解一下子呀?!?!?
求详解一下
求详解一下
我自己算出来的是四和D
scanf("%d", &b) 这句话是有几个意思,注意地址覆盖了
一个是 b是个字符,但是转成int读入,那么以b开头的地址要占4个字节,这样会读入覆盖a的地址
二个是 在b读入后a应该是=0了,这个时候a第一次读入E的值应该被覆盖了
以下就是跟踪的过程:a的地址和b的地址是连在一起的并且b的地址在前面,如果b按照4个字节读入肯定会覆盖点a,最终a=0
(gdb) p &a
$1 = 0x7fffffffe2bf ""
(gdb) p &b
$2 = 0x7fffffffe2be ""
(gdb) p a
$3 = 0 '\000'
(gdb) p b
$4 = 34 '"'
实践检验,输入哪一个都是?,应该是没读进去吧
有用记得采纳呐
#include <stdio.h>
int main()
{
char a,b;
a=getchar();
scanf("%d",&b);
printf("%c",a);
printf("%d %d %d %d\n",(int)a,'A','0',((int)a-'A'-'0'));
a=a-'A'-'0';
b=b*2;
printf("%c,%c\n",a,b);
}
把scanf里的%d改成%c,就可以输出4了