今天看到了一行代码,没想明白是怎么回事?
运行了才知道结果。。。。。
运算符优先级,以及移位的问题。
<span style="font-size:18px;">void priority_judge(){
char p[] = "1234567";
char *q=p;
for (int i=0;i<7;i++)
{
printf("%c\n",*q++<<1);
}
}</span>
运算结果:
大端小端的判断
void endian_judge(){
short int a = 0x1122;
char b = *(char*)&a;
if (b==0x11)
{
printf("big endian\n");
}
else
{
if(b==0x22)
printf("small endian\n");
}
}
windows PC VS2010运行结果: