- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于 C 中的 signed char,范围是从 -128 到 127。a+1
(如代码中所示)如何生成 128 而不是 -128?随后的增量是正常的(a
和 i
都是 -127)。
#include<stdio.h>
int main()
{
char i=127,a=127;
printf("%d\n",++i);//output is -128
printf("%d\n",a+1);//output is 128
//subsequent increment after this is -127 for a and i.
return 0;
}
最佳答案
当与算术运算符一起使用时,所有小整数类型(bool
、char
、short
)都受到整数提升 在对它们执行任何算术之前。在 a + 1
表达式中,您的 a
被提升为 int
意味着该表达式实际上被解释为 (int) a + 1
。 char
的范围在这里不起作用。所有的计算都在int
域中进行,结果的类型为int
。 127 + 1
是 128
,这是您看到的打印内容。
您的++i
定义为i = i + 1
。出于同样的原因,右侧计算为 (int) i + 1
,这意味着在这种情况下,加法也在 int
的域中执行。稍后,结果被转换回 char
并存储回 i
。添加本身不会溢出并产生 128
,但随后转换回 char
会“溢出”,从而产生实现定义的行为。在您的情况下,实现定义的行为产生了 -128
的值作为 char
结果。
关于c - C中signed char的自增操作行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44814186/
1、修改数据 复制代码代码如下: DataRow dr =
数据库操纵基本流程为: 1、连接数据库服务器 2、选择数据库 3、执行SQL语句 4、处理结果集 5、打印操作信息 其中用到的相关函数有 •resource m
CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,它是普通应用程序的缩影。如果您掌握了某框架的CRUD编写,那么意味可以使用该框架创建普通应用程序了
项目结构: 添加页面: &
本文实例讲述了android操作sqlite数据库(增、删、改、查、分页等)及listview显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识
我是一名优秀的程序员,十分优秀!