• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 详解C++中的增量运算符++和减量运算符--的用法

详解C++中的增量运算符++和减量运算符--的用法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++指针详解,c++编程实例详解,c++关键字详解,c++编程实例详解pdf,c++ 虚函数详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

前缀增量和减量运算符:++ 和 --
 
语法

++ unary-expression –– unary-expression

备注
前缀递增运算符 (++) 向其操作数添加 1;此递增值是表达式的结果。操作数必须是类型不为 const 的左值。结果是与操作数相同类型的左值。
前缀递减运算符 (––) 与前缀递增运算符类似,只不过操作数将减少 1,并且结果是递减值。
前缀和后缀递增和递减运算符均会影响其操作数。它们之间的主要差异是递增或递减在表达式的计算中出现的顺序。在前缀形式中,将在表达式计算中使用值之前进行递增或递减,因此表达式的值与操作数的值不同。在后缀形式中,将在表达式计算中使用值之后进行递增或递减,因此表达式的值与操作数的值相同。例如,以下程序将打印“++i = 6”:

// expre_Increment_and_Decrement_Operators.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main() {
  int i = 5;
  cout << "++i = " << ++i << endl;
}

</div>

整型或浮动类型的操作数将按整数值 1 递增或递减。结果的类型与操作数类型相同。指针类型的操作数将按其所寻址对象的大小递增或递减。递增的指针将指向下一个对象;递减的指针将指向上一个对象。
由于增量和减量运算符具有副作用,因此在预处理器宏中使用带递增或递减运算符的表达式时会产生意外的结果。请看以下示例:

// expre_Increment_and_Decrement_Operators2.cpp
#define max(a,b) ((a)<(b))?(b):(a)

int main()
{
  int i = 0, j = 0, k;
  k = max( ++i, j );
}

</div>

宏将扩展为:

k = ((++i)<(j))?(j):(++i);
</div>

如果 i 大于或等于 j 或者比 j 小 1,则将递增两次。
System_CAPS_note注意
由于 C++ 内联函数会消除副作用(如此处描述的副作用),并允许语言执行更全面的类型检查,因此在很多情况下 C++ 内联函数较宏更为可取。

后缀增量和减量运算符:++ 和 --
 
语法

      postfix-expression
      ++
postfix-expression ––
备注
C++ 提供了前缀和后缀递增和递减运算符;两者的区别在于,在后缀表示法中,运算符出现在 postfix-expression 之后,而在前缀表示法中,运算符出现在 expression 之前。以下示例显示了一个后缀递增运算符:
i++;
应用后缀递增运算符 (++) 的效果是操作数的值增加一个适当类型的单位。同样,应用后缀递减运算符 (––) 的效果是操作数的值减少一个适当类型的单元。
值得注意的是,后缀递增或递减表达式的计算结果为应用各自的运算符之前的表达式的值。递增或递减运算在计算操作数之后发生。仅当在较大的表达式的上下文中发生后缀递增或递减运算时才会出现此问题。
当后缀运算符应用于函数参数时,在参数的值传递给函数之前,不能保证该值是递增还是递减。
将后缀递增运算符应用于指向 long 类型的对象数组的指针实际上会将指针的内部表示形式增加 4。此行为会导致以前引用数组的第 n 个元素的指针引用第 (n+1) 个元素。
后缀递增运算符和后缀递减运算符的操作数必须是算术或指针类型的可修改的(非 const)左值。结果的类型与 postfix-expression 的类型相同,但不再是左值。
后缀递增运算符的操作数也可以是 bool 类型,在这种情况下,将计算操作数,然后将其设置为 true)。后缀递减运算符的操作数不能是 bool 类型。
以下代码演示了后缀递增运算符:

// expre_Postfix_Increment_and_Decrement_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

int main() {
  int i = 10;
  cout << i++ << endl;
  cout << i << endl;
}

</div>

不支持对枚举类型执行后递增和后递减操作:

enum Compass { North, South, East, West );
Compass myCompass;
for( myCompass = North; myCompass != West; myCompass++ ) // Error
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++的虚析构详解及实例代码
  • C++二分查找(折半查找)算法实例详解
  • C++ 中指针和引用有什么区别详解
  • C++ 中函数重载、覆盖与隐藏详解
  • C++中指针指向二维数组实例详解
  • C++调用Python基础功能实例详解
  • C++中this指针用法详解及实例
  • C++中函数重载实例详解
  • C++中指针和引用的区别详解
  • C++模版函数详解

相关文章

  • 2017-05-28算法之排列算法与组合算法详解
  • 2017-05-28C++使用递归方法求n阶勒让德多项式完整实例
  • 2017-05-28C++输入输出操作符重载的深入分析
  • 2017-05-28使用Inotify 监控目录与文件的方法详解
  • 2017-05-28C语言求连续最大子数组和的方法
  • 2017-05-28Linux下semop等待信号时出现Interrupted System Call错误(EINTR)解决方法
  • 2017-05-28C++文件读写代码分享
  • 2017-05-28C++中的const的使用详解
  • 2017-05-28C语言中的abs()函数和exp()函数的用法
  • 2017-05-28详解C语言中symlink()函数和readlink()函数的使用

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Qt 实现桌面雪花飘落代码
    • c++实现简单的线程池
    • c语言计算三角形面积代码
    • C++实现将一个字符串中的字符替换成另一个字符串的方法
    • break的使用for循环嵌套示例
    • C++发送HTTP请求的实现代码
    • 详解图的应用(最小生成树、拓扑排序、关键路径、最短路径)
    • vc6.0中c语言控制台程序中的定时技术(定时器)
    • CFileDialog的钩子函数解决对话框的多选之DoModal问题
    • C++ expected initializer before 'myfile'

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有