c语言,我想问一下这个的运行结果为什么是20

img


就是我想问一下大家,这个程序的结果为什么是20,恳请大家告诉我一下,看不懂

逗号表达式的最终结果是 最右值, 逗号表达式的计算顺序是从左往右
所以 ,
先计算 a = 3 * 5 ,即 a = 15
然后 a * 4 ,计算完就丢弃结果
最后 a + 5 = 15 + 5 = 20 【这个结果就是 逗号表达式的结果,所以打印 20】

因为是逗号表达式,逗号表达式的值是最后一个表达式的值

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7551965
  • 这篇博客你也可以参考下:在一个数组中实现两个堆栈 (20 分)
  • 除此之外, 这篇博客: 编写程序,用冒泡法对20个整数按升序排序,C语言程序设计。中的 编写程序,用冒泡法对20个整数按升序排序,C语言程序设计。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    源码如下:
    在这里插入图片描述

  • 以下回答来自chatgpt:

    回答:

    输出结果为20是因为在程序中将指针p所指向的整型变量a的值加了10,并对a进行了输出,所以a的值变成了20。

    具体实现细节如下:

    1. 定义了一个整型变量a,并将其值初始化为10。

    2. 定义了一个指向整型变量的指针p,并将其指向a。

    3. 对指针p进行解引用操作即*p,表示取出指针所指向的变量的值,然后将这个值加上10。

    4. 将指针p所指向的变量a的值改为加10后的值。

    5. 使用printf函数将变量a的值输出到控制台。

    关于指针和解引用的具体实现细节:

    在C语言中,指针是一种特殊的变量,它保存的是另一个变量的地址。指针变量p的类型是int*,表示它是一个指向整型变量的指针。可以通过&p来获取变量a的地址,并将其赋给指针p。在本例中,同时定义了指针p和变量a,所以可以直接将&p赋值给p。

    解引用符号用于获取指针所指向的变量的值,例如p就是取出指针p所指向的整型变量a的值。解引用符号的优先级比+和=都高,所以先执行p,再将结果加10,最后将结果赋值给a。

    代码如下:

    #include<stdio.h>
    
    int main()
    {
        int a = 10; //定义整型变量a,并初始化为10
        int *p = &a; //定义指向a的指针p
    
        //通过指针p修改变量a的值
        *p = *p + 10;
    
        //输出变量a的值
        printf("%d\n", a);
    
        return 0;
    }
    

    以上就是该问题的解答。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^