gpt4 book ai didi

c - 基础 C 编程 printf tricky

转载 作者:太空狗 更新时间:2023-10-29 15:43:33 25 4
gpt4 key购买 nike

int main()
{

printf("%d %d",1,2,3,4,5);

return 0;
}

输出:1,2

int main()
{
printf("%d %d",(1,2,3,4,5));

return 0;
}

输出:5,垃圾值

那么请解释为什么添加方括号/圆括号会有所不同?

最佳答案

因为 ,(逗号)在 C 语言中有多个角色,所以它有所不同。

在第一种情况下,它用于分隔参数,因此您使用 6 个参数调用 printf()。超出需要,这本身可能就是一个问题。

在第二种情况下,括号内的逗号是 "comma operator" ,其作用是评估其左侧,忽略结果,然后评估并返回其右侧。所以表达式 (1,2,3,4,5)5 相同。由于您使用错误数量的参数调用 printf(),您将获得未定义的行为。

括号改变了对逗号的解释,从仅仅分隔参数变成了逗号运算符。

关于c - 基础 C 编程 printf tricky,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945105/

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