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

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?

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-22
一般来讲,主调函数需要被调函数返回函数值的时候需定义为int型!而主调函数不需要被调函数的返回值的时候,定义成为void或者int都可以(定义成int的时候需要有return语句,定义成void的时候不可以有return语句)

Ps:至于你补充提到的问题,我想说一下,一般来讲我们都是把自己定义的函数看成是又返回值的函数的,所以的话即使没有返回值,一般也写一个return0,而且定义的时候一般都要加一个int(或者其他类型),这样便于在以后的优化程序中进行修改!本回答被提问者采纳
第2个回答  2019-01-18
函数名前的void或int称为函数返回值类型,当为void时,表示函数没有返回值,当为int是,表示这个函数的返回值类型为int,即在函数内部必须存在至少一个return语句,来表示函数的值返回到调用主调函数。
第3个回答  2013-01-11
这里的返回值是有用的,不是无的放矢的.
这个返回值用于区分,插入操作是否成功.
成功:返回 1,
不成功:返回 0;
返回值没有调用,是你那一段代码没有调用.
作为一个严谨的程序员,绝不会随便写代码的.
如果不关心,成功失败,当然可以不返回任何值.写成void 自无不可.
顺序表的插入算法是个通用型的算法,当然必须有返回值了!
第4个回答  2009-12-18
一般定义为BOOL更好,返回TRUE表示插入正确,否则FALSE表示失败,这样在具体插入时可以作一个if语句,比如 if(InsertList(i,str,L)) //todo
其实定义什么返回类型都无所谓,具体还是看你有什么用
相似回答