C语言关于函数参数的问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 14:35:43
func( (f1,f2), (f2,f3,f4), f5 );

做了一个选择题,问上面这个函数调用语句中含有几个参数,答案是3个.
我想问,这样子的话那么 (f1,f2) 和 (f2,f3,f4) 算是一种什么数据类型?

func( (f1,f2), (f2,f3,f4), f5 );
这里也考到了运算符的优先级问题
这里()最高,然后就是,(逗号),逗号运算符的优先级是所有运算符最差的。。
逗号运算符的用法:
#include<stdio.h>
main()
{int a;
a=1,2,3,4;//=的优先级高于,(逗号),所以赋值1
printf("%d,%d",(1,2,3,4),a);//(1,2,3,4)逗号运算符选最后的值4
}

知道逗号运算符么?
这里就是考逗号运算符。
(f1,f2) 和 (f2,f3,f4) ,这两个表达式的值分别为f2和f4.本来可以不用括号的,但在这不用,就会不是一个参数了。

int i;
i=(1,2);

这个值你知道不?

哈哈,你的这个问题问的很无语,这只是一个考试的题目,你大可不必去关心这里面的数据类型,他只是一种抽象的表示而已,而且实际中他只要类型能够匹配,这也不是问题!当然了,实际编程中我也没有碰到过这种情况...