输出a等于多少啊,希望解释一下

Python016

输出a等于多少啊,希望解释一下,第1张

最后结果a='c'或a=99。解释如下:

char a='a'——就是a=97,因为字符'a'的ASCII码是十进制97;

char b='\367'——'\367'是八进制,值是254,但b是有符号的-128~+127,所以b最后是-2;

b=(a>b)||(++a)——由于a=99而b=-2,所以a>b成立,值为1,所以b被赋值1,++a被||“短路”而不执行;

a=b!=0 ? a+2 : b——由于b!=0成立(b现在是1),所以a被赋a+2的值,所以a=97+2=99。

所以最后用字符格式输出时a='c',用整型格式输出时a=99。

你可以在最后加一句printf("a = \'%c\' a = %d\n",a,a)来验证。

这个不是这样来理解的,例如char value = ‘a’; char value2 = 97;那么value == value2,两个值相等。但是他们都是基本类型,占用1个字节

但是“ab”是什么?是个字符串,占用两个连续的字节,如果非要说这两个连续的字节是多少,那么可以这么计算,第一个字节97,如果在高位,第二个字节98在低位,那么最后可以组合成一个short int的类型,一个字节8位,也就是97x2^8 + 98 = 24930

其实用16进制表示更清楚:97 对应十六进制是 61,98 对应十六进制就是 62,组合成一个数就是0x6162,对应的十进制就是24930.