输出结果
下面的程序输出结果是64,为什么呢?麻烦大家给我解释一下。main()
{char x=040;
printf("%d",x=x<<1);
}
{char x=040;
printf("%d",x=x<<1);
}
<<是位移运算符,
main()
{char x=040;
printf("%c",x=x<<1);
}
这样应该可以
这个题是不是该这么理解
首先x定义的是字符型的,所以x是字符;040是八进制的数,十进制的值为32,这时应该是指将ASCII码为32的字符(即空格)赋给x。
<<是按位左移运算符,按照十进制的想法来看就是将ASCII乘2,则x的值变为64D
所以按照%d输出得64
按照%c输出得"@"
同意楼上!