美文网首页
一个面试题想到的,关于a = a++;

一个面试题想到的,关于a = a++;

作者: Unlucky | 来源:发表于2016-09-21 14:18 被阅读0次

    前不久群里的一个朋友问一个题目:

    #include <stdio.h>
    
    int main (void)
    {
        int a = 0;
        for (int i = 0; i < 10; i++) {
            a = a++; //先赋值
        }
        printf("%d\n",a);
        return 0;
    }
    

    运行结果是:

    0
    

    在这个程序当中,无论把循环次数更改多少次,运行结果都还是为a的初始值,其原因在于,首先将 'a' 赋值给 'a' ,即无论循环多少次,变量a最终会被赋值0。

    将上述代码稍微修改一下:

    #include <stdio.h>
    
    int main (void)
    {
        int a = 0;
        for (int i = 0; i < 10; i++) {
            a = ++a; //先自增
        }
        printf("%d\n",a);
        return 0;
    }
    

    运行结果是:

    10
    

    再改一下循环体内部的a:

    include <stdio.h>
    
    int main (void)
    
    {
        int a = 0;
        for (int i = 0; i < 10; i++) {
            a++;
        }
        printf("%d\n",a);
        return 0;
    }
    

    运行结果仍然是:

    10
    

    相关文章

      网友评论

          本文标题:一个面试题想到的,关于a = a++;

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