c语言中void和int类型函数的定义,急!!!!!!!!!

intInsertList(inti,charstr,Sqlist&L){if(i>L.length||i<=0)return1;else{for(intn=L.leng... int InsertList(int i,char str,Sqlist &L)
{
if(i>L.length||i<=0)
return 1;
else
{
for(int n=L.length-1;n>=i-1;--n)
L.elem[n+1]=L.elem[n];
L.elem[i-1]=str;
++L.length;
return 0;
}
}
这个是顺序表的插入算法,大家应该很熟悉吧
现在我把它改成void类型
void InsertList(int i,char str,Sqlist &L)
{if(i>L.length||i<=0)
;
else
{
for(int n=L.length-1;n>=i-1;--n)
L.elem[n+1]=L.elem[n];
L.elem[i-1]=str;
++L.length;

}
}
程序依然能够执行

既然执行结果相同,那么什么时候要用void,什么时候要用int呢?
(我知道int可以用return把值返回给函数)
感谢各位,但是,本例本来是不需要返回值的,返回值没有被调用;
为何最优算法中用的是int而不是void?
展开
 我来答
随便什么名啦啦
2020-04-15 · TA获得超过6987个赞
知道答主
回答量:18
采纳率:0%
帮助的人:5180
展开全部

void:

中文翻译为“无类型”。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。

void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。

Int:

int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。

在编程语言(C、C++、C#、Java等)中,常用于定义整数类型变量的标识符。

扩展资料:

void关键字的使用规则:

规则一:如果函数没有返回值,那么应声明为void类型。

在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。

规则二:如果函数无参数,那么应声明其参数为void。

规则三:小心使用void指针类型

按照ANSI(American National Standards Institute)标准,不能对void指针进行算法操作。

规则四:如果函数的参数可以是任意类型指针,那么应声明其参数为void *

典型的如内存操作函数memcpy和memset的函数原型分别为:

void * memcpy(void *dest, const void *src,size_tlen);

void * memset ( void * buffer, int c, size_t num );

规则五:void不能代表一个真实的变量

参考资料:百度百科-void

                 百度百科-int

百度网友dad142f
推荐于2017-11-22 · TA获得超过9905个赞
知道大有可为答主
回答量:1548
采纳率:100%
帮助的人:1882万
展开全部
一般来讲,主调函数需要被调函数返回函数值的时候需定义为int型!而主调函数不需要被调函数的返回值的时候,定义成为void或者int都可以(定义成int的时候需要有return语句,定义成void的时候不可以有return语句)

Ps:至于你补充提到的问题,我想说一下,一般来讲我们都是把自己定义的函数看成是又返回值的函数的,所以的话即使没有返回值,一般也写一个return0,而且定义的时候一般都要加一个int(或者其他类型),这样便于在以后的优化程序中进行修改!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
矫德树云
2019-01-18 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:1111万
展开全部
函数名前的void或int称为函数返回值类型,当为void时,表示函数没有返回值,当为int是,表示这个函数的返回值类型为int,即在函数内部必须存在至少一个return语句,来表示函数的值返回到调用主调函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_whales
2013-01-11 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:498万
展开全部
这里的返回值是有用的,不是无的放矢的.
这个返回值用于区分,插入操作是否成功.
成功:返回 1,
不成功:返回 0;
返回值没有调用,是你那一段代码没有调用.
作为一个严谨的程序员,绝不会随便写代码的.
如果不关心,成功失败,当然可以不返回任何值.写成void 自无不可.
顺序表的插入算法是个通用型的算法,当然必须有返回值了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yili16438
2009-12-18 · TA获得超过255个赞
知道小有建树答主
回答量:459
采纳率:100%
帮助的人:328万
展开全部
一般定义为BOOL更好,返回TRUE表示插入正确,否则FALSE表示失败,这样在具体插入时可以作一个if语句,比如 if(InsertList(i,str,L)) //todo
其实定义什么返回类型都无所谓,具体还是看你有什么用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式