gpt4 book ai didi

c - "Compound Literals"作为参数

转载 作者:行者123 更新时间:2023-12-02 05:42:55 25 4
gpt4 key购买 nike

在语句中调用函数sum(int [], arr_size)

total = sum((int []){1,2,3,4,5}, 5);

复合文字 (int []){1,2,3,4,5} 作为参数传递。很明显,数组的长度是由字面量中元素的数量决定的(这里当然是5)。那么将 5 作为另一个参数传递有什么必要呢?

我们不能把上面的函数定义为

sum(int []) {....}

然后称它为

total = sum((int []){1,2,3,4,5})

?

最佳答案

您的函数 sumsum(int *, size_t) 相同;方括号只是语法糖。在任何时候都不会传递任何数组,事实上你不能在 C 中将数组作为函数参数传递。因此函数参数的“数组”部分中没有大小信息,并且大小必须是分别通过。

关于c - "Compound Literals"作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17374792/

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