C++复习整理---i++和++i

理论上++i更快,实际与编译器优化有关,通常几乎无差别。

//i++实现代码为:                                    
int operator++(int)                                  
{
    int temp = *this;                                     
    ++*this;                                             
    return temp;                                    
}//返回一个int型的对象本身
// ++i实现代码为:
int& operator++()
{
    *this += 1;
    return *this;
}//返回一个int型的对象引用

简单从返回的值来说,i++返回的是i的值,而++i返回的是i+1的值。

从返回的东西来说,++i返回的是i的引用,i是什么值反映出来就是什么值。可以不停嵌套++(++i)。而且可以(++i) = 5;,就是把i的值改为5。可以&(++i)取i的地址空间。而i++就不行,就会报错,因为i++相当于只是返回一个值,没有实体,就不能这样做,也不能嵌套。

	int i = 0;
	cout<<++i<<endl<<++i<<endl;	//2 2 
	cout<<++i<<endl<<i++<<endl;	//4 2 
	cout<<i++<<endl<<i++<<endl; //5 4
	cout<<i++<<endl<<++i<<endl;	//7 8

首先是函数的入栈顺序从右向左入栈的,计算顺序也是从右往左计算的,不过都是计算完以后在进行的压栈操作,所以输出是按顺序的,只是计算顺序是反的:

第一行输出:首先执行++i,返回值是i,这时i的值是1,再次执行++i,返回值是i,得到i=2,将i压入栈中,此时i为2,也就是压入2,2;因为++i返回的是引用,所以前一个的i是2.

第二行输出:首先执行i++,返回值是原来的i,也就是2,再执行++i,返回值是i,依次将2,4压入栈中得到输出结果

第三行:首先执行i++,返回值是原来的4,再执行i++返回值是原来的5,依次将4,5压入栈中得到输出结果

第四行:首先执行++i,返回i,此时i为7,再执行i++,返回值是原来的7,此时i为9,依次将i,8也就是9,8压入栈中,得到输出结果。

理解的时候就是++i是把i压入栈,i是什么值就是什么值。i++是把传入时i的值压入栈,是加之前的值,且不会改的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Microsoft Visual C++ 2015-2019是微软公司推出的一款集成开发环境,用于开发C++语言的应用程序。它包含了许多工具和库,可以帮助开发人员更快地创建高质量的应用程序。这个版本的Visual C++支持从2015年到2019年的所有版本,可以满足不同开发需求的要求。 ### 回答2: Microsoft Visual C++ 2015-2019 是微软开发的一套集成开发环境,主要用于 Windows 平台上 C++ 程序的开发。它支持使用各种编译器和工具链,包括 Windows SDK、Visual Studio Tools、Clang 和 GCC。这套开发环境的出现旨在提高 Windows 下 C++ 开发的效率和质量。 其中包含了许多强大的功能和工具,如调试器、代码分析器、性能分析器、智能提示、代码重构、扩充支持等。Visual C++ 还支持多种平台架构,包括 x86、x64 和 ARM。 Visual C++ 拥有广泛的应用场景,比如用于游戏开发、图形编程、驱动程序、实时控制系统、API 开发等。它的应用广泛且稳定可靠,具有极大的开发优势和便利性。 此外,Microsoft Visual C++ 2015-2019 还针对 C++14 和 C++17 标准进行了大量优化和支持。开发者可以轻松将代码移植到不同平台上,而不需要过多的额外工作。 总之,Microsoft Visual C++ 2015-2019 是一套功能强大、性能优越的开发工具,为 C++ 开发者带来了更优秀的开发体验和效率,也为 Windows 平台上 C++ 开发的发展提供了有力支持。 ### 回答3: 微软视觉 C++ 2015-2019 是微软公司开发的一套 C++ 集成开发环境 (IDE),用于 C++ 语言的开发。它是 Visual Studio 2015 和 Visual Studio 2017 的一部分,也是 Visual Studio 2019 的默认 C++ 开发工具。在这个 IDE 中,开发者们可以进行 C++ 应用程序开发、游戏开发和其他 C++ 项目的开发。此外,开发者还可以使用微软视觉 C++ 2015-2019 来创建可执行文件、动态链接库 (DLL) 和静态库,这些文件可以在 Windows 操作系统以及其他支持 C++ 的编程环境上运行。 微软视觉 C++ 2015-2019 提供了丰富的功能和工具,例如语法高亮、自动完成、调试工具、动态分析、代码重构等等。此外,它还支持各种不同的编译器、框架和库,例如标准C++库、C++ AMP 加速器、DirectX SDK、Windows SDK 和 Qt 框架等等,这些工具可以帮助开发者更快捷、更高效地开发 C++ 应用程序。 微软视觉 C++ 2015-2019 是一个非常强大的 C++ 开发工具,对于那些希望在 Windows 平台上开发高品质应用程序的开发者来说,它是一个不可或缺的工具。无论是在游戏开发领域、工具开发领域还是其他领域,微软视觉 C++ 2015-2019 都可以帮助开发者快速高效地完成项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值