问题标题:
【一道NCRE2级C语言的题已定义了以下函数:fff(floatx){printf("%dn",x*x);}该函数的类型是:A.与参数x的类型相同;B.void类型;C.int类型;D.无法确定;书上的答案是C,理由是书上定义:“若在函数的】
问题描述:

一道NCRE2级C语言的题

已定义了以下函数:

fff(floatx)

{printf("%dn",x*x);}

该函数的类型是:

A.与参数x的类型相同;

B.void类型;

C.int类型;

D.无法确定;

书上的答案是C,理由是书上定义:“若在函数的首部省略了函数返回值的类型名,则默认函数返回值的类型为int型.”

但是我认为该题应选择D,因为书上还说“若函数没有函数值返回,则必须把函数定义成void类型.”这么看的话,这道题的代码不完整,前后矛盾啊.

但是我认为这段代码是一个完整的函数,其中并没有返回确切的值的表达式出现.所以理应定义函数为void型

郭智疆回答:
  书上的说明很清楚了   "若在函数的首部省略了函数返回值的类型名,则默认函数返回值的类型为int型."   这与   "若函数没有函数值返回,则必须把函数定义成void类型."   并不矛盾.   后者要求写代码的时候,如果没有返回值,则要定义为void类型.   但是如果你没有定义类型,则前一条件起作用,默认返回int型.   同时这样的函数中编译的时候应该会提示你,需要返回值.   你可以这么理   如果有void类型限制,则是void型,否则一定是int型,而不管函数有没有return语句.
查看更多
其它推荐
热门其它推荐