c语言在windows下和Mac下的不同表现!
最近给一个等级考试的C语言培训班上课,学生问起一些++的问题。让我好生为难。因为这些不同的编译器处理方式,在不同的系统下表现并不一致。
不管你洋洋洒洒论述多么一大篇,在事实面前就一下显得苍白了。虽然这样的代码在工程中是不提倡的,但是考试又不得不面对。
例1:
a=1;
b=++a+++a+++a;
问,执行完之后,b和a的值是多少?
首先,上面第二个表达式,在WINDOWS下是无法通过编译的,会报告a+++a这样的表达式 lvalue required as increment operand
在Mac下也无法通过编译,报告的错误是: Expression is not assignable
需要修改为:b=++a+(++a)+(++a);
在WINDOWS下,VC6中,包括mingw32-gcc.exe(GCC)中,运算的结果是10,4。
但是在Mac中,运算的结果是:9,4。
原因是在windows 下,总是先算++a+(++a),而且是先递增两次a,变成3,然后再算两个3之和为6,然后再算+(++a)的值,加上4,于是得到10.
而mac 下似乎更符合我们对C的认知,是先执行2+3+4=9;
例2:
a=1;
b=a+++a+++a++;
执行结果也不同,windows下结果是3,4;
mac下是6,4;
c语言在windows下和Mac下的不同表现!的更多相关文章
- socket在windows下和linux下的区别
原文:socket在windows下和linux下的区别 1)头文件 windows下winsock.h/winsock2.h linux下sys/socket.h 错误处理:errno.h 2 ...
- [nginx]Windows和Mac下,nginx反向代理服务器配置
最近做项目,前端需要用到nginx反向代理来转发请求,总结了一下在Windows和Mac上的配置,以备查询. 一.Windows 修改nginx的配置文件,nginx.conf. 1)nginx.co ...
- java JDK在windows及mac下安装配置
windows下安装: JDK下载 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- windows与mac下安装nginx
window下 下载链接,自己选一个版本下载 nginx官网下载 本人放在D盘: 启动nginx 有很多种方法启动nginx (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过 (2)打开 ...
- IntelliJ IDEA windows与mac下常用快捷键
摘自: http://www.th7.cn/Program/java/201604/817219.shtml 1.找文件找代码找引用 shif双击在项目的所有目录查找 ctrl+f(mac下:comm ...
- docker在windows下和linux下网络底层的一些区别
windows和linux下的docker运行时的网络结构是有区别的 a.windows下,默认使用Hyper-v创建一个linux虚拟机,承载docker.所以从外向内的路径为: windows - ...
- windows/Linux/Mac下安装maven,maven作用
Linux下安装maven 1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.3.9-bin.tar.gz,下载可以使用wget命令: 2.进入下 ...
- windows和mac下分别配置虚拟主机
windows下配置 1.找到apache的配置文件,httpd.conf 2.找到 LoadModule rewrite_module modules/mod_rewrite.so 去掉前边的# 3 ...
- windows下和linux下 Redis 安装
Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windo ...
随机推荐
- Excel公式巧用-将新值替换旧值,新值为空保留原值
使用excel时候遇到 将新值替换旧值,新值为空保留原值的问题,简单使用Excel的函数即可以实现.
- Ruby SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B:
最近使用ruby-china的源连接不上 使用gem update遇到这个问题, 原来是ruby没有包含SSL证书,所以Https的链接被服务器拒绝. 解决方法很简单,首先在这里下载证书(http:/ ...
- 并查集,是否成树,Poj(1308)
思路: 对于每一条新的边的两个端点,是否是属于一颗树,要是的话,就不是一颗树.否则,就合并. 这里要注意的是,不能是森林,我这里WA了两次了.只不过在最后,查看每个节点的祖先是否是同一个就可以了. # ...
- border-radius给元素加圆角边框
border-radius给元素加圆角边框 例: border-radius:20px; /*所有角都使用半径为20px的圆角*/ 实心圆: 把宽度(width)与高度(height)值设置为一致(也 ...
- MAC os x 系统java开发环境搭建教程
https://jingyan.baidu.com/article/3d69c55147a3baf0cf02d7ca.html
- C# 复合赋值操作符
前面讲过如何使用算术操作符来创建新值.例如,以下语句使用操作符+来创建比变量answer大42的一个值,新值将写入控制台: Console.WriteLine(answer + 42); 前面还讲过如 ...
- caffe中各种cblas的函数使用总结
转来的,来自:http://www.cnblogs.com/huashiyiqike/p/3886670.html 总结的很赞,转到这里,留一下笔记.感觉cblas的函数名字很好记的,试着去找过源代码 ...
- 前端面试题(来自前端网http://www.qdfuns.com/notes/23515/c9163ddd620baac5dd23141d41982bb8.html)
HTML&CSS 1. 常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1)浏览器:IE,Chrome,FireFox,Safari,Opera. (Q2)内核:Trid ...
- 1、SpringBoot------表单校验
开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/Springboot/tree/1ef5e597a6f866e73387c0238dbcdf46cf ...
- Core Location :⽤用于地理定位
Core Location :⽤用于地理定位 在移动互联⽹网时代,移动app能解决⽤用户的很多⽣生活琐事,⽐比如 导航:去任意陌⽣生的地⽅方 周边:找餐馆.找酒店.找银⾏行.找电影院 在上述应⽤用中, ...