gpt4 book ai didi

c - 给定代码的输出说明

转载 作者:行者123 更新时间:2023-11-30 18:48:45 25 4
gpt4 key购买 nike

#include <stdio.h>

int sum(int a, int b, int c) {
return a + b + c / 2;
}

void main() {
int (*function_pointer)(int, int, int); // how this will be interpreted
function_pointer = sum;
printf("%d", function_pointer(2, 3, 4));
return ;
}

当我在 ide 上运行时,它给出输出 7,我不明白怎么回事?

最佳答案

声明

int (*function_pointer)(int, int, int);   

声明一个指向函数的指针,该函数接受三个int参数并返回一个int。后者指向函数 sum 并用于调用该函数。

sum 函数内的语句

return a + b + c / 2;  

被解析为

return a + b + (c / 2); // division operator has higher precedence than + operator 
// and therefore the operands `c` and `2` will be bind to `/` operator

关于c - 给定代码的输出说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44715189/

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