++i, i++, printf 和 程序的可移植性 问题
来源:互联网 发布:微信兼职任务平台源码 编辑:程序博客网 时间:2024/05/04 18:40
今天突然发现了一个问题
#include <stdio.h>int main(int argc, char* argv[]){ int i = 0; i = 0; printf("%d,%d,%d,%d\n",i, i++,++i,i); i = 0; printf("%d,%d,%d,%d\n",i, ++i,i++,i); return 0;}为什么这个程序 的输出结果是2,1,2,2
2,2,0,2
首先,应该说明的是在不同的编译环境中结果是不一样的。
关于本段代码在VC++6.0中的规则如下:
2、前自增运算符(++i)先加1,再使用i,此时i已经加了1;
3、后自增运算符(i++)先使用i,再加1,***注意这里是关键所在,VC++6.0后自增运算是要在整条语句结束以后才自加1的***
最后发现没有混淆++i和i++的使用,反而发现了printf的问提。看来以后为了程序的可移植性,小心使用++i,i++,printf.
顺便在这分享一下我记忆++i和i++的技巧:
(++i):加号在前,先加后用
(i++):加号在后,先用后加
- ++i, i++, printf 和 程序的可移植性 问题
- 从汇编角度看++i和i++(续:++i, i++, printf 和 程序的可移植性 问题)
- 关于c++中printf 和 i++,++i的问题
- printf下的“i++”和“i--”
- i++和++i的问题
- i++ 和 ++i 的问题
- 关于printf("%d,%d",i--,i++)的问题
- gcc 编译器中 printf i++ 和 ++i 的输出
- 关于java中i++,++i和i++ + ++i的问题
- 关于程序可移植性的问题
- c++中printf("%5d%5d%5d%5d%5d", ++i, --i, i++, --i, -i--)的问题
- i++和++i问题
- 关于i++和++i的问题
- i++和++i的效率问题
- 关于i++和++i的性能问题
- 关于++i和i++的问题
- i++和++i的线程安全性问题
- C++的printf(),以及++i, i++
- shell 中的[: -eq: unary operator expected
- Linux 文件夹 压缩 命令
- 修改题注样式
- select 多选 左右框添加删除
- 利用pdfbox完成文档制作
- ++i, i++, printf 和 程序的可移植性 问题
- Android4.0 与 android2.3 差异
- Word 2007-破解只能浏览而不能编辑的文档
- 计算机网络 -- RS232接口 ----OSI物理层协议----RS232接口
- oracle 行列转换函数
- Android Stagefright NuPlayer for HTTP live
- RFC2459 中文文档
- 项目符合和编号修改
- 基于http live streaming视频直播在android上的实现