永发信息网

int 函数 返回值可必须是int吗

答案:6  悬赏:80  手机版
解决时间 2021-04-01 10:18
int 函数 返回值可必须是int吗
最佳答案
是的
在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 2e(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:
int main( void )
int main( int argc, char *argv[] )
(参考资料:ISO/IEC 9899:1999 (E) Programming languages — C 5.1.2.2.1 Program startup)
当然,我们也可以做一点小小的改动。例如:char *argv[] 可以写成 char **argv;argv 和 argc 可以改成别的变量名(如 intval 和 charval),不过一定要符合变量的命名规则。
如果不需要从命令行中获取参数,请用int main(void) ;否则请用int main( int argc, char *argv[] ) 。
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你 最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6不会在目标文件中加入return 0; ,大概是因为 vc6 是 98 年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上 return 语句了吧!不过,gcc3.2(Linux 下的 C 编译器)会在生成的目标文件中加入 return 0; 。
全部回答
必须是int。但你可以定义成返回值是结构体,
结构体成员包括一个标志和一个数。
如果不是int,首先会尝试将返回值转换为int,并给出warning。如果不能转换,则给出编译Error。
如果数组都是正数 那么可以返回个-1
如果数组既有正数又有负数 ,就该考虑用指针的方式返回结果
int * search(int a[], int b) 找不到就返回NULL,找到了就返回该元素的地址
必须是int类型的,如果你觉得不合理,你可以
char search(int a[],int b, int* data),
用data指针返回数据,然后返回值,也就是那个char,你用来判断是否查找成功,比如,小于0就是没找到,非负数就是找到,这不也可以么?
理论上市可以不是int型的,
参数和返回值不同类型是没有问题的
不过你的程序,好像没法实现这个功能
也就是说返回的标志和所找的的数没法区别
给你个思路,也就是说返回的数据方面下手
找到了,返回这个数在数组中的第几个数,也就是数组的下标,
找不到返回-1,这样可以区别了,
因为数组下标是从0开始的,不可能是-1
这样就区别开来了 ,再就是,返回第几个数,这样在调用的函数中,这个数组时没有变的,可以吧这个数据找出来
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黑豆红豆红枣红花生枸杞能不能煮在一起
腹肌健身仪贴片有用吗
醋的土法制作
留学gpa要求是标准算法还是4分制
有哪些古诗被改编了的?
电脑中间白色方框挡住了
打印机突然把所有绿色都打成蓝色事怎么回事?
手机禁止安装未知来源的软件怎么处理
绯色相对的是什么颜色。
k544次列会经过那些站
狗狗禁水禁食后应该吃什么?
花瓣唇和M型唇哪个好看
六安绿源客栈地址在什么地方,我要处理点事!
襄阳个人交纳养老保险需要哪些资料
蓝花楹树和紫薇花区别
推荐资讯
爱之家月嫂地址有知道的么?有点事想过去!
人眼是世界上最精密的________(选填“照相机
OPPOR6007手机装上4G网卡咋不能用,网卡上有
15.5手围,圆棍实心抽拉多少克最合适日常戴
enough英文怎么读
p2p老板到期不还钱怎么能够要回钱
事业单位时政该怎么复习
天顺堂药店(扶余市运管所陶赖昭分所西北)地址
焦距为100mm,f/5的镜头,其孔径是多少
华夏保险怎么又是电子保单又是纸质合同一起给
借3000 6个月 利息14% 一共要多少利息 怎么算
西麦燕麦能生吃吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?