当前位置:首页 » 编程语言 » c语言函数值变量不为空的现象
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言函数值变量不为空的现象

发布时间: 2022-11-30 06:09:09

‘壹’ c语言中的空函数和空值函数分别指的是什么,

1、空函数:返回值为void类型的函数,可以用return,也可以不用return。 不用return和在函数结束处有个return是等效的。但要注意return后面除了分号以外什么也没有。
2、空值函数:返回值为NULL的函数。 如果是有返回类型的函数, 返回空指针用“return NULL;"。这种函数就空值函数。

‘贰’ C语言—空类型问题

准确的说,函数这个名称不太准确,容易误导人。C/C++里的函数应该被叫做“子程序”,是一个独立的程序段,可以被重复调用用来完成类似的功能
这样的“子程序”很多情况下是用来提供一个值的,这就是通常的函数,这个值的类型必须明确,就是返回值的类型
但有的子程序不是用来提供一个值,可以仅仅是执行某些特定的操作,那么,定义为空类型是安全的,表示“不允许该子程序返回值”。这种子程序只能通过独立的语句调用,不能用在表达式里
之所以需要空类型,是因为,函数的默认返回值类型是int,如果在函数定义时未带返回类型说明,则默认为int;即使函数中没有return语句,编译器按照函数返回值的原理,会返回一个不确定的值。如果将这样的函数错用在表达式里,语法上没错,但会带来很难察觉的逻辑错误。
而将空类型函数用在表达式里是一个编译错误。

‘叁’ C语言中空函数是怎么回事

凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。而不是当做void

譬如你的void fun() 本身就没有返回值 如果定义为fun() 虽然不给函数体内加return语句 但照样会返回一个整型数 因为什么都不加 就默认为了int
举个例子
f(){
}
main()
{
int a = 1;
a =f();
printf("%d ",a);
getch();
}
我这儿得到的结果是1842 是个整型数 你可以试试运行下 可能结果不一样 但是结果肯定是个整型数据

作为对比 我们看看下一个实例
void f(){
}
main()
{
int a = 1;
f();
printf("%d ",a);
getch();
}
输出结果是1 其中f()什么都没做 什么都不返回

‘肆’ C语言中函数定义的返回值为空的问题

改成这样就对了:
void f()
{
float a;
printf("%f",a);//你原来的输出格式不对
}
void类型的函数无返回值,也就是说,不需要return语句
当然也可以在函数末尾加上一条空的return语句:return;(和return 1;是不同的)
void f(float a)
{printf("%f",a);
}
也是对的....