gpt4 book ai didi

c - 解释c程序的输出

转载 作者:太空宇宙 更新时间:2023-11-04 00:19:02 28 4
gpt4 key购买 nike

#include<stdio.h>
void main(){

int x,y,z;
x=y=z=1;
z=++x||++y&&++z;
printf("%d %d %d \n",x,y,z);
getch();
}

输出为 2 1 1 !我不明白为什么...如果我们按照运算符的优先顺序进行操作,则无法解释。请帮忙

最佳答案

逻辑(||)引入一个序列点。它的左侧被评估。然后,当且仅当产生 0/false 时,才对右侧求值。

在这种情况下,++x 结果为 2,因此永远不会计算右侧。这反过来意味着 yz 保持为 1

关于c - 解释c程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287750/

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