永发信息网

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

答案:6  悬赏:80  手机版
解决时间 2021-04-01 10:18
  • 提问者网友:轮囘Li巡影
  • 2021-03-31 13:31
int 函数 返回值可必须是int吗
最佳答案
  • 五星知识达人网友:底特律间谍
  • 2021-03-31 14:16
是的
在 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; 。
全部回答
  • 1楼网友:你可爱的野爹
  • 2021-03-31 17:43
必须是int。但你可以定义成返回值是结构体,
结构体成员包括一个标志和一个数。
  • 2楼网友:一把行者刀
  • 2021-03-31 16:55
如果不是int,首先会尝试将返回值转换为int,并给出warning。如果不能转换,则给出编译Error。
  • 3楼网友:罪歌
  • 2021-03-31 15:58
如果数组都是正数 那么可以返回个-1
如果数组既有正数又有负数 ,就该考虑用指针的方式返回结果
int * search(int a[], int b) 找不到就返回NULL,找到了就返回该元素的地址
  • 4楼网友:街头电车
  • 2021-03-31 14:45
必须是int类型的,如果你觉得不合理,你可以
char search(int a[],int b, int* data),
用data指针返回数据,然后返回值,也就是那个char,你用来判断是否查找成功,比如,小于0就是没找到,非负数就是找到,这不也可以么?
  • 5楼网友:妄饮晩冬酒
  • 2021-03-31 14:35
理论上市可以不是int型的,
参数和返回值不同类型是没有问题的
不过你的程序,好像没法实现这个功能
也就是说返回的标志和所找的的数没法区别
给你个思路,也就是说返回的数据方面下手
找到了,返回这个数在数组中的第几个数,也就是数组的下标,
找不到返回-1,这样可以区别了,
因为数组下标是从0开始的,不可能是-1
这样就区别开来了 ,再就是,返回第几个数,这样在调用的函数中,这个数组时没有变的,可以吧这个数据找出来
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯