首页 技术资料正文

C语言自增(数组初始化++)和自减(--)()

piaodoo 技术资料 2022-08-27 00:22:02 803 0

C语言自增(数组初始化++)和自减(--)()

C语言自增(++)和自减(--)

一个整数类型的变量自身加 1 可以这样写:

a = a + 1;

或者

a += 1;

不过,C语言还支持另外一种更加简洁的写法,就是:

a++;

或者

++a;

这种写法叫做或,意思很明确,就是每次自身加 1。相应的,也有a----a,它们叫做,表示自身减 1。++--分别称为自增运算符和自减运算符,它们在循环结构(后续章节会讲解)中使用很频繁。自增和自减的示例:
include 
int main()
{
    int a = 10, b = 20;
    printf("a=%d, b=%d\n", a, b);
    ++a;
    --b;
    printf("a=%d, b=%d\n", a, b);
    a++;
    b--;
    printf("a=%d, b=%d\n", a, b);

    return 0;
}
运行结果:a=10, b=20a=11, b=19a=12, b=18自增自减完成后,会用新值替换旧值,将新值保存在当前变量中。自增自减的结果必须得有变量来接收,所以自增自减只能针对变量,不能针对数字,例如10++就是错误的。需要重点说明的是,++ 在变量前面和后面是有区别的:
  • ++ 在前面叫做(例如 ++a)。前自增先进行自增运算,再进行其他操作。
  • ++ 在后面叫做(例如 a++)。后自增先进行其他操作,再进行自增运算。
自减(--)也一样,有和之分。下面的例子能更好地说明前自增(前自减)和后自增(后自减)的区别:
include 
int main()
{
    int a = 10, b = 20, c = 30, d = 40;
    int a1 = ++a, b1 = b++, c1 = --c, d1 = d--;
   
    printf("a=%d, a1=%d\n", a, a1);
    printf("b=%d, b1=%d\n", b, b1);
    printf("c=%d, c1=%d\n", c, c1);
    printf("d=%d, d1=%d\n", d, d1);
   
    return 0;
}
输出结果:a=11, a1=11b=21, b1=20c=29, c1=29d=39, d1=40a、b、c、d 的输出结果相信大家没有疑问,下面重点分析a1、b1、c1、d1:1) 对于a1=++a,先执行 ++a,结果为 11,再将 11 赋值给 a1,所以 a1 的最终值为11。而 a 经过自增,最终的值也为 11。2) 对于b1=b++,b 的值并不会立马加 1,而是先把 b 原来的值交给 b1,然后再加 1。b 原来的值为 20,所以 b1 的值也就为 20。而 b 经过自增,最终值为 21。3) 对于c1=--c,先执行 --c,结果为 29,再将 29 赋值给c1,所以 c1 的最终值为 29。而 c 经过自减,最终的值也为 29。4) 对于d1=d--,d 的值并不会立马减 1,而是先把 d 原来的值交给 d1,然后再减 1。d 原来的值为 40,所以 d1 的值也就为 40。而 d 经过自减,最终值为 39。可以看出:a1=++a;会先进行自增操作,再进行赋值操作;而b1=b++;会先进行赋值操作,再进行自增操作。c1=--c;d1=d--;也是如此。为了强化记忆,我们再来看一个自增自减的综合示例:
include 
int main()
{
    int a = 12, b = 1;
    int c = a - (b--);  // ①
    int d = (++a) - (--b);  // ②

    printf("c=%d, d=%d\n", c, d);

    return 0;
}
输出结果:c=11, d=14我们来分析一下:1) 执行语句①时,因为是后自减,会先进行a-b运算,结果是 11,然后 b 再自减,就变成了 0;最后再将a-b的结果(也就是11)交给 c,所以 c 的值是 11。2) 执行语句②之前,b 的值已经变成 0。对于d=(++a)-(--b),a 会先自增,变成 13,然后 b 再自减,变成 -1,最后再计算13-(-1),结果是 14,交给 d,所以 d 最终是 14。

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/119350.html

搜索