函数类型——void
首先随便举一个函数的例子:
int a()
在这个函数中,int叫作返回值,小括号里面的叫作参数
因此,函数可以写成下面这种格式
ret_type fun_name(形式参数)
{
}
ret_type:叫作返回值
fun_name:自定义函数名
那么此时就可以引入我们的主题void了
当void放在返回值的位置时,表示这个函数没有返回值
当void放在形式参数的位置时,表示这个函数没有形式参数,为了方便可以省略
那么了解了一些基本的定义以后,就会发现这么一个问题:那我什么时候使用void,什么时候用其他类型呢?
下面就举一个例子来让大家深刻的理解,要求把数组的1-10全部改为-1
void set_arr(int arr[], int sz)
{
int i=0;
for(i=0; i<sz; i++)
{
arr[i]=-1;
printf("%d",arr[i]);
}
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int sz=sizeof(arr)/sizeof(arr[0]);//求一个数组里有多少个数字
set_arr(arr,sz);
return 0;
}
像上面的代码就使用了void,在这时肯定有人会思考void不是表示不返回吗?那不就是没意义吗?
其实不是这样的,这里其实是把返回值的概念弄混了
函数的调用是在函数里面作用,改变对应地址的元素,返回值是指return这个东西后面的数,假设你这个函数想返回某个特殊的值,这个特殊的值叫返回值
在这个题中,函数的作用是改变数组空间里的元素,是对地址空间的元素作用,和有没有返回值没有关系
返回值是程序自己定的,你想让它有它就有,想让它没有就没有,我们代码的作用是利用地址去改变地址空间内的元素和内容
返回值只是这个题目可能告诉我要一个返回值,那么我就会根据具体的需求进行修改
下面再看一个需要返回值的例子:题目:简单的加法运算
int Add(int x, int y)
{
int z=0;
z=x+y;
return z;
}
int main()
{
int a=0;
int b=0;
scanf("%d %d ",a,b);
int c=Add(a,b);
printf("%d\n",c)
return 0;
}
这个就很好理解了,经过函数的运算最后得到的结果需要传递回主函数进行使用,因此它需要返回值,这个返回值就是计算的结果