正文
c语言定义函数无反值 c语言中函数无返回值
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言中自定义的函数没有返回值会怎样?
这是错误,既然函数定义要返回值,就返回一个值,不返回结果是未知的 c语言可以允许这样的代码,c++视为错误
这是vc2017结果:
deubg模式结果是4,release结果是0, 所以这个代码没有意义
debug模式 结果是4
release模式 结果是0
c语言中,如果要函数不返回值,则应把函数的类型定义为
C语言中c语言定义函数无反值,如果要函数不返回值c语言定义函数无反值,则应该吧函数c语言定义函数无反值的类型定义为“void”。
在将函数定义为void类型的情况下在主调函数中调用该函数,该函数调用表达式不能被用作子表达式给其他变量赋值。
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
扩展资料c语言定义函数无反值:
void类型指针要注意规则c语言定义函数无反值:
1、void 指针是一种特殊的指针,表示为“无类型指针”,在 ANSI C 中使用它来代替“char*”作为通用指针的类型。由于 void 指针没有特定的类型,因此它可以指向任何类型的数据。
2、void*类型只有地址信息没有类型信息,所以不能计算偏移。
3、要将void指针赋值给其他类型的指针,必须进行强制类型转换。
4、在编程中,如果函数的参数可以是任意类型指针,那么应该使用 void 指针作为函数的形参,这样函数就可以接受任意数据类型的指针作为参数。
void使用注意:
1、如果函数没有返回值,那么应声明为void类型,在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。
2、如果函数无参数,那么应声明其参数为void。
3、void不能代表一个真实的变量
参考资料来源:百度百科-void
简单c语言函数调用无返回值问题?
递归函数myPower的定义有逻辑错误,改成:
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
如果改成这样,会更高效:
double myPower(int a,int b)
{
if(0==b) return 1;
if(1==b) return a;
return myPower(a,b%2)*myPower(a*a,b/2);
}
例子1
#include stdio.h
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
int main()
{
int a=2,b;
for(b=0;b11;b++)
printf("%lf\n",myPower(a,b));
return 0;
}
例子2
#include stdio.h
double myPower(int a,int b)
{
if(0==b) return 1;
if(1==b) return a;
return myPower(a,b%2)*myPower(a*a,b/2);
}
int main()
{
int a=3,b;
for(b=0;b11;b++)
printf("%lf\n",myPower(a,b));
return 0;
}
c语言定义函数无反值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言中函数无返回值、c语言定义函数无反值的信息别忘了在本站进行查找喔。