问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

定义函数的前面什么时候用char,什么时候用int

发布网友 发布时间:2022-09-07 22:32

我来回答

4个回答

热心网友 时间:2024-11-08 00:36

定义函数时前面的函数类型是用来说明函数返回值的属性的。如果函数不需要返回值可以用void,如果返回值是字符型用char,是整数型则用int。

热心网友 时间:2024-11-08 00:36

返回值类型需要事先决定,并且一般应该保证return语句表达式类型能够安全地转化为返回值类型,以避免编译错误或损失精度导致预料以外的结果。
双引号内的字符串字面量的类型是char数组即char[]类型(数组长度等于字符数+1,这里的1指最后的默认添加的结束符'\0'),可以舍去长度信息,安全地退化为指向char字符的指针类型即char*类型。因此这里的返回值类型应该是char*。指针实质是定义了特殊操作的整数,大小在32位平台上一般为32位(范围和unsigned int相同),用char这种8位整数(不管是不是有符号的)容纳不下,自然无法指望结果正确。而int作为返回类型时,char*隐式转化为int时可以不损失精度(尽管可能超出范围,但符号位不会丢失),在%s对应的参数中被printf当做char*对象,因此输出正确;但这不是类型安全的操作,在其它平台上不保证有正确的结果,所以这里应当使用char*这样的和return返回值一定兼容的类型,而不是int。
====
[原创回答团]

参考资料:原创

热心网友 时间:2024-11-08 00:37

fun函数应该返回的其实是char*,因为返回值是实际上是一个字符串的起始地址,而在32位的机器上面地址就是32位的,而int也是32位的。因此int和char*都是32位的,因此程序正好不会出错。
而char是8位的,在返回的时候,截去了前面的24位的内容,只返回了8位的内容,因此返回的值就不能够正确得转化成32位的地址了。

热心网友 时间:2024-11-08 00:37

看函数的返回值是什么类型的,是字符型就用char;是整型就用int。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找几本一流的小说。类型' 完结什么的无所谓. 不要幼稚就好 沈阳职高学校排名 沈阳哪个公办职高和中专好 沈阳有哪些职高学校比较好? gpw一代和二代的区别有哪些 罗技gpw一代和二代区别介绍 第一代和第二代的区别 gpw二代和一代有什么区别 二代和一代区别详情分享 设张举措的意思设张举措的解释设张举措接龙 设张的成语设张的成语是什么 人字地砖铺法怎么找平方 int double char sum 都什么时候用 刚开始学c语言啊 想知道什么时候用float什么时候用int char这些 如何判断何时使用char和int 华为翻盖手机壳合上一会时间就没了 柳公权是什么朝代的人? 天下无敌的吕布,为什么骂他是“三姓家奴”? 世称“颜筋柳骨”的书法大家柳公权,他是哪个朝代人士?求答案 陆家嘴谁有? 陆家嘴29s短片 发给我呗陆家嘴29s 陆家嘴29s片段 有陆家嘴29S么 陆家嘴29s SGwannabe (我的爱人)中文歌词? 火王之破晓之战 吴玥哪一集与李盈相遇 遇见爱情的利先生吴玥是谁演的扮演者肖涵个人资料背景 烩菜的定义 初二英语问题,请讲明选和不选的原因 明选臻品汇真的假的 12个月宝宝得了急性咽炎,吃什么药 (char、int、float、double)什么时候用 char和int的用法区别 电信号码可以注册吗 柳公权是哪个朝代的人 柳公权生活在哪个时代 科目三考试换挡技巧详解参考 关于奋进的诗句大全 为什么秦琼就被歌颂,吕布就被骂“三姓家奴”? 求秦时明月里有哲理的句子 4寸和2.5寸音响有什么区别 秦时明月中比较有哲理的台词? 爱奇艺无法连接网络的原因以及解决办法详解 动画《秦时明月》里非常有哲理的句子 求秦时明月一至四部经典语录(要带有哲理性) 个体是什么(科学中) 浙江成人高考报考时间 浙江省成人高考要过省分数线算加分吗 ...存放温度有要求吗?好喝的白兰地最好是多少度存放不影响口感?_百度... 白兰地储存的最低温度限制吗? 什么是机器损坏险 机器损坏险的保险金额