当int指针被类型化为char时会发生什么?

int main(){ int a; char *x; x = (char *) &a; a=512; x[0]=1; x[1]=2; printf("%d\n",a); return 0; } 

这段代码的输出是513.你能解释一下吗?