C语言i++和++i操作

关于++混合操作,不同计算结果推理

第一种编译结果:

int i = 5;

int sum = (++i) + (++i)

= 6 + 7

= 13

第二种编译结果:

int i = 5;

int sum = (++i) + (++i)

= 6 + 7

= 7 + 7 前面的7是因为后面i的变化被影响后,重新赋值

= 14


第一种编译结果:

int i = 5;

int sum = (++i)+(i++)

= 6 + 6

= 12

第二种编译结果:

int i = 5;

int sum = (++i)+(i++)

= 6 + 6

= 7 + 6 前面的7是因为后面i的变化被影响后,重新赋值

= 13


int i = 5;

int sum = (i++) + (i++)

=5 + 6

=11


int i = 5;

int sum = (i++) + (++i)

=5 + 7

=12

在虚拟机gcc编译,当++i在前会被后面的i影响,i++在前不会被影响。

复制代码
#include<stdio.h>

int main()
{
    int i = 3;
    int ret1 = (i++)+(i++);
    printf("ret1:%d,i:%d\n",ret1,i);
    
    int ret2 = (i++)+(++i);
    printf("ret2:%d,i:%d\n",ret2,i);

    return 0;
}

/***********************************
输出结果:
ret1:7,i:5
ret2:12,i:7
************************************/

注意:

算数运算符,运算结果是数值类型

关系运算符,运算结果是boolean类型(其实就是int的 0-假,非0-真)

逻辑运算符,运算结果是boolean类型(其实就是int的 0-假,非0-真)

相关推荐
Monkey-旭1 小时前
Android Handler 完全指南
android·java·handler
秃狼1 小时前
Execel文档批量替换标签实现方案
java
神经兮兮的小饼1 小时前
字符串是数据结构还是数据类型?
数据结构·字符串
Brookty1 小时前
Java线程安全与中断机制详解
java·开发语言·后端·学习·java-ee
OEC小胖胖2 小时前
渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
前端·算法·ui·状态模式·web
找不到、了2 小时前
Java排序算法之<归并排序>
算法·排序算法
香蕉可乐荷包蛋2 小时前
排序算法 (Sorting Algorithms)-Python示例
python·算法·排序算法
Sylvia-girl2 小时前
排序查找算法,Map集合,集合的嵌套,Collections工具类
java·算法·排序算法
TT哇2 小时前
【分治】归并排序——排序数组(medium)
java·算法·排序算法
给力学长2 小时前
自习室预约小程序的设计与实现
java·数据库·vue.js·elementui·小程序·uni-app·node.js