c语言中void和int类型函数的定义,急!!!!!!!!!
{
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
Ps:至于你补充提到的问题,我想说一下,一般来讲我们都是把自己定义的函数看成是又返回值的函数的,所以的话即使没有返回值,一般也写一个return0,而且定义的时候一般都要加一个int(或者其他类型),这样便于在以后的优化程序中进行修改!
这个返回值用于区分,插入操作是否成功.
成功:返回 1,
不成功:返回 0;
返回值没有调用,是你那一段代码没有调用.
作为一个严谨的程序员,绝不会随便写代码的.
如果不关心,成功失败,当然可以不返回任何值.写成void 自无不可.
顺序表的插入算法是个通用型的算法,当然必须有返回值了!
其实定义什么返回类型都无所谓,具体还是看你有什么用