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-真)

相关推荐
掘金者阿豪3 分钟前
金仓数据库KingbaseES与MyBatis-Plus整合实践:电商系统开发实战
java·后端
rengang6613 分钟前
10-支持向量机(SVM):讲解基于最大间隔原则的分类算法
人工智能·算法·机器学习·支持向量机
消失的旧时光-19431 小时前
人脸跟随 ( Channel 实现(缓存5条数据 + 2度过滤 + 平滑移动))
android·java·开发语言·kotlin
默默coding的程序猿1 小时前
1.单例模式有哪几种常见的实现方式?
java·开发语言·spring boot·spring·单例模式·设计模式·idea
编程岁月1 小时前
java面试-0136-BIO、NIO、AIO区别?
java·面试·nio
春生野草1 小时前
部署项目到Tomcat
java·tomcat
安逸sgr1 小时前
SpringMVC启动流程
java·jvm·spring·spring cloud·eclipse·tomcat·maven
AndrewHZ1 小时前
【图像处理基石】暗光增强算法入门:从原理到实战(Python+OpenCV)
图像处理·python·opencv·算法·计算机视觉·cv·暗光增强
lifallen2 小时前
从Apache Doris 学习 HyperLogLog
java·大数据·数据仓库·算法·apache
fire-flyer2 小时前
maven-jlink-plugin入门
java·maven