gpt4 book ai didi

C 运算符和评估

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

#include<stdio.h>
int main()
{
int i=3,val;
val=sizeof (f(i))+ +f(i=1)+ +f(i-1);
printf("%d%d",val,i);
getch();
return 0;

}
int f(int num)
{
return num*5;
}

编译器编译程序并给出输出 7 1 ..“++”是什么意思???

最佳答案

首先请注意 sizeof 是编译时可评估的,因此 val 中的第一项将是 sizeof(int): int f 的返回类型。

要分配给 val 的整个表达式的值是 undefined 因为 + 作为二元和一元运算符没有排序.本质上,您不知道 i = 1 会在 i - 1 求值之前还是之后发生。

至于您的具体情况,a++ b 被评估为 a + (+b)+b 只是一个一元加法(几乎 是一个空操作,但确实做了一些微妙的类型强制转换),另一个 + 是加法运算符有两个参数。

关于C 运算符和评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32452307/

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