这里的*c=*c+1不会被转化为int吗 int的优先级高于char

 

用字符a来举例说明 

字符:a
Bin(二进制):01100001 
Dec十进制 :97
Hex(十六进制):61     
当打印的时候 %c 输出的是字符 printf("%c ",97)  输出的 a

*c+1=97+1=98    printf("%c ",98)  输出 b

同理如果  printf("%d ",'a') 会输出  97 

 printf("%x ",'a'+1) 会输出  字符a十六进制的值+1 62   

 

*c是char类型,char类型+1转成int,但是int值还是赋给了char类型的*c,取int的低位,所以最后的感觉好像就是*c+1就是取了*c后面的一个char类型数。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^