美文网首页C语言C语言从入门到入坟
深入浅出一个C语言的小例子,有深度

深入浅出一个C语言的小例子,有深度

作者: 源世界Z | 来源:发表于2018-05-30 17:51 被阅读2次

    正文共:1062 字 3 图。预计阅读时间: 3 分钟。

    源世界原创,转载抄袭必究!


    说明一下:

    C语言学习是一个长期的过程,坚持固然能成功。但是一味的看知识点,不去思考就无法进步了,现在我的打算就是写一点深入浅出的文章,就不做知识的搬运了,没意思。书本上的基本知识是你必须要掌握的,如果想要一些电子书籍的可以私信我。今天我们就来探讨一下C语言“i++”与"++i”的区别,是探讨,有什么问题可以直接评论,不要钱的。注意:一下的实例均在vs2010编译环境中,其他环境自测。

    1:在for循环中的区别

    思考:for循环中i++与++i有区别吗?

    实例:通过自加算出从0~100的结果,本着简单原则。

    #include<stdio.h>

    int main()

    {

    int i=0,n=0,m=0;

    for(i=0;i<=100;i++)

    {

      m=m+1;

    }

    for(i=0;i<=100;++i)

    {

    n=n+1;

    }

    printf("%d\n",m);

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

    return 0;

    }

    运行结果:没有区别。

    2.诠释i++与++i的含义

    单独使用时:

    a=i++化解为:a=i;i=i+1;就是先到用i的值然后再i自加。

    简单记住:i++先调用再自加。

    a=++1化解为:i=i+1;a=i;就是先自加在调用i的值。

    简单记住:++i先自加再调用。

    一张图片说明问题:

    3.为什么会有i++与++i的区别

    要想搞清楚这个问题,我们先需要了解一个概念:什么是左值?

    左值:左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。左值与右值的根本区别在于是允许取地址&运算符获得对应的内存地址。

    =是赋值运算符,它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。这里是用变量作左值,指针和引用也可以作左值。例如:int a, b, c;a=3;b=4; c = ( a + b )*(2*a - b) // 得出14

    a=++i;知道++i是左值,这就是他们的区别所在;一般情况下:通过优先级来说:++i的优先级高于i++.而且++i是原地操作,效率比i++高一点。

    4.总结:

    在实际运用中,我们都不怎么管i++与++i,研究这些并不无聊,只有通过深入思考这些入微的问题,才会有新的突破与收获,以上的仅仅是个人观点,有什么问题尽管补充,免费。


    关注我们:源世界Z

    关注公众号每天收听我们的消息,源世界为您奉上精品文章。欢迎订阅点赞,谢谢!

    相关文章

      网友评论

        本文标题:深入浅出一个C语言的小例子,有深度

        本文链接:https://www.haomeiwen.com/subject/nqsxsftx.html