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

相关推荐
大二转专业1 分钟前
408算法题leetcode--第七天
考研·算法·leetcode
比花花解语2 分钟前
Java中Integer的缓存池是怎么实现的?
java·开发语言·缓存
大母猴啃编程10 分钟前
数据结构---非线性--树
c语言·数据结构·学习·算法·青少年编程
码农探知18 分钟前
鹏哥C语言自定义笔记重点(67-)
c语言·数据结构
让学习成为一种生活方式23 分钟前
解析药用植物重楼甾体皂苷生物合成中的连续糖基化及其抗真菌作用-文献精读49
linux·数据库·算法·天然产物化学
JOJO___27 分钟前
Spring IoC 配置类 总结
java·后端·spring·java-ee
追逐远方的梦29 分钟前
二级C语言2023-3易错题
c语言·开发语言
蜗牛学苑_武汉29 分钟前
设计模式之代理模式
java·网络·java-ee·代理模式
super晓权35 分钟前
SVM原理
算法·svm·machine learning
极客先躯39 分钟前
java和kotlin 可以同时运行吗
android·java·开发语言·kotlin·同时运行