C语言scanf输入问题

img

C语言scanf输入,,不应该是765吗,b的值为什么是图中的那样

我测试了一下没问题啊

在vc2010下测试结果是
9876543210
x1=98,x2=765,y1=4,y2=1

但是有堆栈溢出,所以应该是y1变量定义太小,被溢出了 ,溢出的两个字符是3和2,ascii码是33 32, 而0x3233 = 10进制的12851

char只能表示-128-127,你这个读取了相邻的内存,所以结果不可预料。不同编译器结果不同。