gpt4 book ai didi

c - 什么是 printf(),语句或表达式?为什么它与三元运算符一起工作?

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:11 25 4
gpt4 key购买 nike

如果三元运算符要求的是表达式,而不是语句,那么为什么要编译 printf();printf(); 是表达式还是语句?

最佳答案

当您调用一个函数(任何函数)时,它就是一个表达式。当您添加终止 ; 时,您将该表达式变成了一条语句。

事实上,您可以将任何表达式变成一个语句,方法是让表达式单独存在,并添加语句终止符 ;。例如,所有赋值都是表达式,所以例如

a = b + c

是一个表达式,但是

a = b + c;

是一个声明。

还应注意,通常所有表达式都“返回”一个值。在赋值表达式的情况下,它返回被赋值的变量的值(因此在上面的示例中,赋值表达式返回 a after 赋值的值已制作)。这就是您可以将表达式链接在一起的方式。在上面的示例中,语句只是丢弃赋值表达式的结果。

返回值表达式的唯一异常(exception)是函数调用表达式,它调用返回类型为 void 的函数。它们没有任何结果,不能用于链式表达式。


关于三元表达式,它需要三个子表达式,计算第一个并将结果用作 bool 值来选择应该计算其他两个表达式中的哪一个。

例子:

a < b ? printf("a < b\n") : printf("a >= b\n");

上面一行是一个语句。该语句包含一个表达式,即三元表达式,该表达式包含三个子表达式(条件和两个函数调用)。

重要的是要知道三元表达式的两个分支中只有 一个 会被求值,所以上面的例子不会调用 printf 两次,只会调用一次。

关于c - 什么是 printf(),语句或表达式?为什么它与三元运算符一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25280435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com