为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下关于int 函数 返回值可必须是int吗?不可以是其他吗?

请问一下关于int 函数 返回值可必须是int吗?不可以是其他吗?

哆啦的时光机 2021-12-30 11:11:02
假如我要设计个函数int search(int a[],int b),从数组中找一个数,找到就返回返回这个数,如果没找到就返回一个标志,表示没找到,此时返回值可不可以不是int
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

理论上市可以不是int型的,
参数和返回值不同类型是没有问题的

不过你的程序,好像没法实现这个功能
也就是说返回的标志和所找的的数没法区别

给你个思路,也就是说返回的数据方面下手
找到了,返回这个数在数组中的第几个数,也就是数组的下标,
找不到返回-1,这样可以区别了,
因为数组下标是从0开始的,不可能是-1
这样就区别开来了 ,再就是,返回第几个数,这样在调用的函数中,这个数组时没有变的,可以吧这个数据找出来

查看完整回答
反对 回复 2022-01-03
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

是的
在 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; 。



查看完整回答
反对 回复 2022-01-03
  • 2 回答
  • 0 关注
  • 429 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信