*(ptr++) += 123
*(ptr++) += 123;
等价于:*(ptr) = *(ptr) + 123; ptr++;
而不是:*(ptr++) = *(ptr++) + 123;程序员面试宝典p32
#include <stdio.h>
int main()
{
unsigned char a = 0xA5;
unsigned char b = ~a >> 4 + 1;
printf("%d\n",b);
}
答案是250.
1、算术优先级:“~” 大于 “+” 大于 “>>”
2、类型转换:对于混合类型的算术表达式,应将其类型变换为最宽的数据类型。
在本题中,~a >> 4 + 1 ,常量的默认类型是int,所以应先将a变换4个字节进行处理。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步