【考研】C语言i++和++i的区别
来源:互联网 发布:喵哥成男数据 编辑:程序博客网 时间:2024/06/05 07:33
i++和++i的区别虽然简单,还是记录一下吧!
【知识点】
1. 对于普通独立的语句,i++和++i是一样的,如:
i++; 等效于i=i+1;
++i; 等效于i=i+1;
2. 用于赋值语句,i++先赋值后加1,++i先加1后赋值,如:
i=1; y=i++; 等效于:i=1; y=i; i=i+1; 则执行完后 y=1; i=2;
i=1; y=++i; 等效于:i=1; i=i+1; y=i; 则执行完后 y=2; i=2;
3. 用于判断条件表达式:如
a、i++:先执行判断后加1,如下:
#include<stdio.h>int main(){int i=0;while(i++) { printf("i=%d\n",i); if(i==3) break; }printf("i=%d\n",i);}
输出结果为:1
分析:i++先把i的值0拿出来做判断条件,此时while(0)条件为假,所有不执行while循环体,但是判断完成后,i执行+1动作(i=i+1),所以i=1,输出值为1;
b、++i:先加1后执行判断,如下:
#include<stdio.h>int main(){int i=0;while(++i) { printf("i=%d\n",i); if(i==3) break; }printf("i=%d\n",i);}
输出结果为:i=1,i=2,i=3,i=3
分析:++i,执行过程先把i的值执行i=i+1,此时i=1再进行判断,所有while(1)条件为真,然后在执行循环体,输出i=1回车换行,if不成立,继续循环;
当i=1时,再判断循环条件++i,还是先执行i=i+1,此时i=2; while(2) 条件为真,然后再做循环体,此时输出 i=2回车换行;if不成立,继续循环;
当i=2时,再判断循环条件++i,还是先执行i=i+1,此时i=3; while(3) 条件为真,然后再做循环体,此时输出 i=3回车换行;if成立,强制推出循环;
最后输出i=3,结束。
这里需要注意的是:
a、break语句表示强制从循环体内跳出,提前结束循环。
b、while(1)、while(2)、while(3)都表示条件为真,也就是说非0的数都表示真。
【小结】
越是简单基础的知识,越需要常常回顾,多多积累!
- 【考研】C语言i++和++i的区别
- 【c语言】i++和++i的区别
- C语言中的 i++ 和 ++i 的区别
- C语言笔记——(i++)和(++i)的区别
- c语言中i++和++i的区别
- 【c++】i++和++i的区别
- ++i和i++的区别(C++)
- C语言++i和i++
- C语言中 i++ 和 ++i 有什么区别?
- ++i i++ 在C语言和java中的区别
- C语言中 i++ 和 ++i 有什么区别?
- 【C语言】语法--++i与i++的区别
- 【c++】语言基础:++i & i++ 的底层区别
- 在C语言中 i++与++i的区别
- C语言自增自减,i++和++i的区别
- C语言优先级和(i++)+(i++)与(++i)+(++i)
- c语言i++和++i和左值的问题
- i++和++i的区别
- POJ 2229 Sumsets 已被翻译
- android studio gradle配置详解
- 解决会声会影X8安装后无法运行
- 使用Java开发高性能网站(一)
- 字符串之替换字符串中连续出现的指定字符串
- 【考研】C语言i++和++i的区别
- ubunto 16.04 LTS 下安装 Odoo 10
- 分数求和问题
- Java Bean Getters/Setters
- 读诗
- 使用Java开发高性能网站(二)
- Android APK 更新之路
- CSC 576: Alternating Direction Method for Multipliers (ADMM)
- git#fetch