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

相关推荐
小杰帅气16 小时前
红黑树实现
数据结构
Carve_the_Code16 小时前
分布式订单系统:订单号编码设计实战
java·后端
Home16 小时前
23种设计模式之代理模式(结构型模式二)
java·后端
程序员西西16 小时前
详细介绍Spring Boot中用到的JSON序列化技术?
java·后端
雨中飘荡的记忆16 小时前
MySQL 优化实战
java·mysql
豆豆的java之旅16 小时前
深入浅出Activity工作流:从理论到实践,让业务流转自动化
java·运维·自动化·activity·工作流
一点 内容17 小时前
深度解析OurBMC后端模式:全栈技术架构与运维实践
java·开发语言
f***019317 小时前
CC++链接数据库(MySQL)超级详细指南
c语言·数据库·c++
q***235717 小时前
MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
java·数据库·mysql
合方圆~小文17 小时前
球型摄像机作为现代监控系统的核心设备
java·数据库·c++·人工智能