技术经验分享:i++++i区别模拟实现

简介: 技术经验分享:i++++i区别模拟实现

"

在程序中我们经常碰到这样的表达式计算:++a + b--

我们查看操作优先级别:从高向低b--,(++a,+ 同一级别)

从下面的代码中,可以清楚看到计算过程:

class Program

{

static void Main(string【】 args)

{

int a = 2;

int b = 1;

Console.WriteLine(++a + b--);

Console.WriteLine(a);

Console.WriteLine(b);

int i = 2;

Console.WriteLine(++i + i++);

Console.WriteLine(i);

Console.WriteLine(""测试i++"");

object ii = 10;

int k = Program.ijiajia(ref ii);

Console.WriteLine(k);

Console.WriteLine(ii);

Console.WriteLine(""测试++i"");

object m = 5;

//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDM5ODU1Ng==.html

int n = Program.jiajiai(ref m);

Console.WriteLine(m);

Console.WriteLine(n);

Console.Read();

}

static int ijiajia(ref object i)

{

int temp = int.Parse(i.ToString());

i = temp + 1;

return temp;

}

static int jiajiai(ref object i)

{

i = int.Parse(i.ToString()) //代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg0MTQ1Ng==.html

+ 1;

return int.Parse(i.ToString());

}

}

计算结果:

4

3

0

6

4

测试i++

10

11

测试++i

6

6


"
image.png
相关文章
|
4月前
|
自然语言处理 前端开发 JavaScript
前端进阶必读:JS闭包深度解析,掌握这一特性,你的代码将焕然一新!
【8月更文挑战第23天】闭包是JavaScript的一项高级功能,让函数能够访问和操作外部函数作用域中的变量。本文深入解析闭包概念、组成及应用场景。闭包由函数及其词法环境构成,通过在一个函数内定义另一个函数来创建。它有助于封装私有变量、维持状态和动态生成函数。然而,不当使用闭包可能导致内存泄漏或性能问题。掌握闭包对于实现模块化代码和成为优秀前端开发者至关重要。
43 0
|
7月前
|
存储 算法 Python
学习编程是一个逐步积累的过程
【4月更文挑战第30天】学习编程是一个逐步积累的过程
49 2
|
机器学习/深度学习 人工智能 大数据
【如何系统的学习it技术】
【如何系统的学习it技术】
|
数据库 Nacos
【项目实战典型案例】08.用户成为设计者的正例
【项目实战典型案例】08.用户成为设计者的正例
|
开发者
软件工程高效学 | 实战案例:利用Kitten设计交互案例
软件工程是计算机领域的一门专业基础课,它对于培养开发者的软件素质、提高开发者的软件开发能力与软件项目管理能力具有重要意义。本篇介绍了利用Kitten设计交互案例。
180 0
软件工程高效学 | 实战案例:利用Kitten设计交互案例
|
缓存 微服务
聊聊编程学习方法,企业级开发到底在做什么,难不难?
聊聊编程学习方法,企业级开发到底在做什么,难不难?
相亲软件开发,关注应用启动优化的本质
相亲软件开发,关注应用启动优化的本质
|
Rust Kubernetes 测试技术
Krustlet 入手案例
本文将对基于 Kind 部署 Krustlet 并实践 Demo 应用
409 0
|
安全 云栖大会
「技术人生」第6篇:技术同学应该如何理解业务?
本文以大量理论论述解析业务,并提供多种基于不同场景的实操方法,帮助技术同学以科学、合理的方式开展日常工作、指导团队开展业务建设,保障顶层设计的落地执行。
1117 2
「技术人生」第6篇:技术同学应该如何理解业务?
|
前端开发
前端学习案例-一文带你理解如何解决工作中的需求
前端学习案例-一文带你理解如何解决工作中的需求
70 0