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