C#的自增和自减操作符

自增操作符++对变量的值加1,而自减操作符--对变量的值减速1。它们适合于sbyte,byte,short,ushort,int,uint,long,ulong,char,float,double,decimal和任何enum类型。比如,假设一个整数x的值为9,那么执行x++之后的值为10。

注意:自增和自减操作符的操作数必须是一个变量,一个属性访问器或一个索引指示器访问器,而不能是常量或者其它的表达式。比如5++和(x+)--都是非法的。如果操作数是一个访问器,那么这个访问器必须同时支持读和写。

自增和自减操作符又有前后缀之分。对于前缀操作符,遵循的原则是“先增减,后使用”,而后缀操作符则正好相反,是“先使用,后增减”。我们用例子来说明这个问题。

程序清单7-7:

using System;
class Test
{
  public static void Main(){
    int x=5;
    int y=x++;
    Console.WriteLine(y);
    y=++x;
    Console.WriteLine(y);
  }
}

第一次是先使用后加,所以输出为5,第二次先加后使用,输出为7。

再看一个例子。

程序清单7-8:

using System;
class Test
{
  public static void Main(){
    int x=5;
    Console.WriteLine((x++)+(x++)+(x++));
    int y=(x++)+(x++)+(x++);
    Console.WriteLine(y);
  }
}

程序运行的结果是:
18
27

读者可能对输出结果感到难以理解。其实编译的过程是这样:编译器先对整个表达式扫描,先把x的原值取出来,对表达式求解后,再对每个x执行++运算。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索变量
, 前自增后自增运算
, 自增
, 表达式
, 自增操作
, console
, 操作符
, 一个
, WriteLine
, C语言自增自减
自增自减
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-12-08 03:10:11

C#的自增和自减操作符的相关文章

[叩响C#之门]第3章 运算符和表达式 3.2 自增、自减运算符

3.2 自增.自减运算符 每过一年,我们的年龄就增加一岁,像这种变化,可以用自增运算符"++"实现.

[JAVA · 初级]:4.深入理解自增&自减运算

定义 自增,自减运算符: ++   --                  它们是计算机专家自创的特有运算符.                  ++ 有两种身份                  a) 前加  ++a: 其规则是: a先增加,后使用.                  b) 后加  a++: 其规则是: a先使用,后增加.                  注意: 不论是前加 ++a;  还是后加 a++; 它们最终等价于  a = a + 1; --有两种身份:       

基于jQuery的Spin Button自定义文本框数值自增或自减_jquery

有时候在设计表单时需要对文本框实现数值自增或自减功能,例如默认为1,点击向上按钮键则增加指定步长值,点击向下按钮键则减少指定步长值,使用jQuery插件jQuery Spin Button只需要几行代码就可实现该功能,效果如下图 使用说明 一,需要使用jQuery库文件和jQuery Spin Button库文件(目前版本1.1.1) 素材准备 上下按钮图片,默认路径为:/img/spin/,上下按钮图片命名为:spin-button.png,可进行自定义修改 实例代码 一,包含文件部分 复制代

c-自增或自减变量加减运算结束后结果为什么还要再进行一次自增或自减?

问题描述 自增或自减变量加减运算结束后结果为什么还要再进行一次自增或自减? <?php $a = 10; $b = ($a++) + (++$a); echo $b; ?> 结果是 22 为什么呀 解决方案 http://www.guokr.com/blog/471312/ 这种问题可以不用再讨论了. 解决方案二: 第三行的($a++) 本身是10,但如果只是这样的话打印的结果也为10(先运算再自增的),首先假设C=B+(A++),B首先看到的是A本身,因为运算式还没结束,那么它还会向后面找,

Java核心技术卷I基础知识3.5.5 自增与自减运算符

3.5.5 自增与自减运算符 当然,程序员都知道加1.减1是数值变量最常见的操作.在Java中,借鉴了C和C++的做法,也提供了自增.自减运算符:n++将变量n的当前值加 1,n--则将n的值减1.例如,以下代码:   将n的值改为13.由于这些运算符会改变变量的值,所以它们的操作数不能是数值.例如,4++就不是一个合法的语句. 实际上,这些运算符有两种形式:上面介绍的是运算符放在操作数后面的"后缀"形式.还有一种"前缀"形式:++n.后缀和前缀形式都会使 变量值加

PHP 中「自增、自减」运算引发的奇怪问题

PHP 中「自增.自减」运算引发的奇怪问题 在 PHP 的官方手册中写道: PHP 支持 C 风格的前/后递增与递减运算符. 第一个注意事:递增/递减运算符不影响布尔值.递减 NULL 值也没有效果,但是递增 NULL 的结果是 1. 换句话说:递增/递减运算中,不会把操作数转换成整数后再运算.如果运算数是布尔值,则直接返回结果. 递增/递减布尔值: $a = TRUE; var_dump(++$a); // bool(true)   $a = TRUE; var_dump(--$a); //

node.js Sequelize实现单实例字段或批量自增、自减_node.js

一.单实例自增.自减 在Sequelize中,一个实例(Instance)表示数据库中的一行记录.Instance有两种:由Model.build()创建的非持久化实例,和由Model.create()等方法创建的持久化实例.无论是持久化还是非持久化实例,都会有increment() .decrement()两人上方法,分别用于字段值的自增和自减两种操作. instance.increment(fields, [options]) - 字段值自增 instance.decrement(field

关于PHP中的自增、自减操作的奥秘

首先看一道面试题: $a = 1; $b = &$a; if ($b == $a++) echo "true"; else echo "false"; 首先,创建了一个变量$a,并且将数值设定为了1: 然后,创建了一个变量$b,并将其作为对$a的一个引用: 最后这个判断语句中,包含两个opcode:POST_INC 和 IS_EQUAL.首先执行的是先返回后自增语句(POST_INC),首先返回1,然后$a自增为了2,因为$b是$a的一个引用,$b也是2.然

More Effective C++:自增和自减

很久以前(八十年代),没有办法区分++和--操作符的前缀与后缀调用.这个问题遭到程序员的报怨,于是C++语言得到了扩展,允许重载increment 和 decrement操作符的两种形式. 然而有一个句法上的问题,重载函数间的区别决定于它们的参数类型上的差异,但是不论是increment或decrement的前缀还是后缀都只有一个参数.为了解决这个语言问题,C++规定后缀形式有一个int类型参数,当函数被调用时,编译器传递一个0做为int参数的值给该函数: class UPInt { // "u