当前位置: 首页 > news >正文

筑巢网站网页游戏下载

筑巢网站,网页游戏下载,南山医院网站建设,商丘网站建设求职简历文章目录 10.操作符的属性#xff1a;优先级、结合性10.1 优先级10.2 结合性 11.表达式求值11.1 整型提升11.2 算术转换11.3 问题表达式解析11.3.1 表达式111.3.2 表达式211.3.3 表达式311.3.4 表达式411.3.5 表达式5: 11.4 总结 10.操作符的属性#xff1a;优先级、结合性 … 文章目录 10.操作符的属性优先级、结合性10.1 优先级10.2 结合性 11.表达式求值11.1 整型提升11.2 算术转换11.3 问题表达式解析11.3.1 表达式111.3.2 表达式211.3.3 表达式311.3.4 表达式411.3.5 表达式5: 11.4 总结 10.操作符的属性优先级、结合性 10.1 优先级 这里的优先级我们是考虑相邻的操作符。 相邻的操作符优先级高的先执行。 我们可以用来改变优先级。 10.2 结合性 如果两个运算符优先级相同优先级没办法确定先计算哪个了这时候就看结合性了。 就看是从左向右算还是从右向左算。 11.表达式求值 11.1 整型提升 整型提升讨论的是表达式中char和short类型的值。 C语言中整型算术运算总是至少以缺省默认整型类型的精度来进行的。 为了获得这个精度表达式中的字符和短整型操作数在使用之前被转换为普通整型这种转换称为整型提升。 表达式中各种长度可能小于int长度的整型值都必须先转换为int或unsigned int然后才能送入CPU去执行运算。 如何进行整体提升呢 有符号整数提升是按照变量的数据类型的符号位来提升的无符号整数提升高位补0 int main() {char a 20;//00010100 - a//00000000000000000000000000010100 - achar b 130;//10000010 - b//00000000000000000000000010000010 - bchar c a b;//00010100 - a符号位是0//00000000000000000000000000010100 - a整型提升补码//10000010 - b符号位是1//11111111111111111111111110000010 - b整型提升补码//11111111111111111111111110010110 - c补码//10010110 - c截断//%d - 打印有符号的整数//11111111111111111111111110010110 - c整型提升补码//10000000000000000000000001101001 - c反码//10000000000000000000000001101010 - c原码-106printf(%d\n, c);return 0; }打印 -106b和c的值被提升为普通整型然后再执行加法运算。 加法运算完成之后结果将被截断然后再存储于a中。 11.2 算术转换 算数转换讨论的是类型大于等于整型类型的其他类型。 如果某个操作符的各个操作数属于不同的类型那么除非其中一个操作数的转换为另一个操作数的类型否则操作就无法进行。下面的层次体系称为寻常算术转换。 long double double float unsigned long int long int unsigned int int 如果某个操作数的类型在上面这个列表中排名靠后那么首先要转换为另外一个操作数的类型后执行运算。也就是下面的向上转换。 11.3 问题表达式解析 11.3.1 表达式1 你觉得先算什么呢? a*b c*d e*f表达式1在计算的时候由于 * 比 的优先级高只能保证 * 的计算是比 早但是优先级并不能决定第三个 * 比第一个 早执行。 所以表达式的计算机顺序就可能是 a*bc*dab cde*fab cd e*f 或者 a*bc*de*fab cdab cd e*f 11.3.2 表达式2 c --c;同上操作符的优先级只能决定自减 -- 的运算在 的运算的前面但是我们并没有办法得知 操作符的左操作数的获取在右操作数之前还是之后求值所以结果是不可预测的是有歧义的。 例如 int c 5; –c是先算的算完后c4那么左边的c会不会也随之改变值呢 那么是54还是44呢 11.3.3 表达式3 int main() {int i 10;i i-- - --i * ( i -3 ) * i i;printf(i %d\n, i);return 0; }这个和表达式二有点像而且不方便读写。 表达式3在不同编译器中测试结果也不一样。 11.3.4 表达式4 #include stdio.h int fun() {static int count 1;return count; } int main() {int answer;answer fun() - fun() * fun();printf( %d\n, answer);//输出多少return 0; }虽然在大多数的编译器上求得结果都是相同的。 但是上述代码 answer fun() - fun() * fun(); 中我们只能通过操作符的优先级得知先算乘法再算减法。 函数的调用先后顺序无法通过操作符的优先级确定。 11.3.5 表达式5: #include stdio.h int main() {int i 1;int ret (i) (i) (i);printf(%d\n, ret);printf(%d\n, i);return 0; }同样的代码在不同编译器产生了不同的结果。 这段代码中的第一个 在执行的时候第三个是否执行这个是不确定的因为依靠操作符的优先级和结合性是无法决定第一个 和第三个前置 的先后顺序。 11.4 总结 即使有了操作符的优先级和结合性我们写出的表达式依然有可能不能通过操作符的属性确定唯一的计算路径那这个表达式就是存在潜在风险的建议不要写出特别复杂的表达式。
http://www.zqtcl.cn/news/798307/

相关文章:

  • 北京网络营销网站品牌营销增长公司哪家好
  • 网站反链有好处吗稷山网站建设
  • 廊坊网站群发关键词怎么在百度上推广自己的公司信息
  • 网站开发 沈阳免费模板建站
  • 商业性质网站建设步骤wordpress电影网盘
  • 网站的外部推广成都房产网官网
  • 深圳网站建设创想营销北京土巴兔全包装修价格表
  • 怎么发布php网站邯郸建设网站制作
  • 手机网站做多宽的图片wordpress顶部导航栏怎么创建
  • 如何做招聘网站的数据分析安徽黄山旅游攻略
  • 2022建站市场国际新闻直播
  • 茗哥网站建设装饰公司网站规划方案
  • 北京天津网站建设公司做平台网站要多久
  • 做我女朋友的表白句的网站做seo_教你如何选择网站关键词
  • 如何对网站用户分析徐州网站制作如何定位
  • 网站定制生成器龙岗网站设计讯息
  • 镇江市建设工程网站蜘蛛爬取网站
  • 个人备案网站可以做电影站吗微信做的地方门户网站
  • 网站上传根目录美点网络公司网站
  • 长春微信做网站网站开发和设计如何合作
  • 江门网站制作报价买网站不给我备案
  • 太原百度网站快速优化网站 后台 数据 下载
  • 某网站开发项目进度表天元建设集团有限公司赵唐元
  • 网站外链收录很多 内链收录几个西安网站seo优化
  • 网站源码制作网站产品类别顺序如果修改
  • 北京定制网站开发公司浩森宇特本机快速做网站
  • 校网站建设方案网站怎么优化关键词快速提升排名
  • 手机号注册的网站wordpress蚂蚁主题
  • 专业的集团网站设计公司优化网站服务
  • 深圳专业网站建设公司好吗个人网站排名欣赏