c语言 void函数怎么调用
当n=123114350时,结果为:c1=3c2=1c3=2intc1,c2,c3;voidfun(longn){c1=c2=c3=0;while(n!=0){switc...
当n=123114350时, 结果为:c1=3 c2=1 c3=2
int c1, c2, c3;
void fun(long n)
{ c1 = c2 = c3 = 0;
while (n != 0)
{
switch (n % 10)
{
case 1:
c1++;
break;
case 2:
c2++;
break;
case 3:
c3++;
}
n /= 10;
}
}
不改变原来的,在主函数里输出打印~~~~谢谢啦 展开
int c1, c2, c3;
void fun(long n)
{ c1 = c2 = c3 = 0;
while (n != 0)
{
switch (n % 10)
{
case 1:
c1++;
break;
case 2:
c2++;
break;
case 3:
c3++;
}
n /= 10;
}
}
不改变原来的,在主函数里输出打印~~~~谢谢啦 展开
3个回答
展开全部
【void的含义】
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量, void真正发挥的【作用】在于:
(1) 对函数返回的限定;
(2) 对函数参数的限定。
我们知道,在定义函数时,加在函数名前的“void”表示该函数没有返回值。但在调用时,在函数名前加“(void)”的作用又是什么呢?
最明显的一点就是表示程序并不关心调用该函数后的返回值是什么,比如函数strcpy,我们直接用“strcpy(des_str, src_str);”这样的形式来调用。“(void)strcpy(des_str, src_str);”这样的形式还真不多见!
原因是这种写法不针对人,也不针对编译器,而是针对静态代码检测工具,它会把函数返回值作为一项检测标准。在某些大公司,比较重视代码规范,若在代码静态检测时需要检测该项。此时就需要用在被调用的函数(名)前加上“(void)”这种形式来告诉静态代码检测工具程序并非没有处理该函数的返回值,而是该处确实不需要处理它(该函数的返回值),不需要再对该处代码作此项检测。其实这和我们在代码中使用“#pragma warning (disable: XXXX)”的道理是一样的。
l例如: 统计整数里面各位 1 2 3 的个数
//***************************************************
#
include <stdio.h>
int c1, c2, c3;
void fun(long n)
{
c1 = c2 = c3 = 0;
while (n != 0)
{
switch (n % 10)
{ case 1:
c1++;
break;
case 2:
c2++;
break;
case 3:
c3++;
}
n /= 10;
}
}
int main()
{ long n;
scanf("%ld", &n); //输入整数n
fun(n); //调用自定义函数fun
printf("C1=%d C2=%d C3=%d\n", c1, c2, c3); //输出
}
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量, void真正发挥的【作用】在于:
(1) 对函数返回的限定;
(2) 对函数参数的限定。
我们知道,在定义函数时,加在函数名前的“void”表示该函数没有返回值。但在调用时,在函数名前加“(void)”的作用又是什么呢?
最明显的一点就是表示程序并不关心调用该函数后的返回值是什么,比如函数strcpy,我们直接用“strcpy(des_str, src_str);”这样的形式来调用。“(void)strcpy(des_str, src_str);”这样的形式还真不多见!
原因是这种写法不针对人,也不针对编译器,而是针对静态代码检测工具,它会把函数返回值作为一项检测标准。在某些大公司,比较重视代码规范,若在代码静态检测时需要检测该项。此时就需要用在被调用的函数(名)前加上“(void)”这种形式来告诉静态代码检测工具程序并非没有处理该函数的返回值,而是该处确实不需要处理它(该函数的返回值),不需要再对该处代码作此项检测。其实这和我们在代码中使用“#pragma warning (disable: XXXX)”的道理是一样的。
l例如: 统计整数里面各位 1 2 3 的个数
//***************************************************
#
include <stdio.h>
int c1, c2, c3;
void fun(long n)
{
c1 = c2 = c3 = 0;
while (n != 0)
{
switch (n % 10)
{ case 1:
c1++;
break;
case 2:
c2++;
break;
case 3:
c3++;
}
n /= 10;
}
}
int main()
{ long n;
scanf("%ld", &n); //输入整数n
fun(n); //调用自定义函数fun
printf("C1=%d C2=%d C3=%d\n", c1, c2, c3); //输出
}
展开全部
直接调用就可以,如果你想输出结果可在fun函数里加入输出
追问
不改变原来的,在主函数里输出打印~~~~谢谢啦
追答
那么你调用的函数必须有返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//******************************************************************************
// 统计整数里面各位 1 2 3 的个数
//******************************************************************************
#include <stdio.h>
int c1, c2, c3;
void fun(long n)
{
c1 = c2 = c3 = 0;
while (n != 0)
{
switch (n % 10)
{
case 1:
c1++;
break;
case 2:
c2++;
break;
case 3:
c3++;
}
n /= 10;
}
}
int main()
{
long n;
scanf("%ld", &n); //输入整数n
fun(n); //调用自定义函数fun
printf("C1=%d C2=%d C3=%d\n", c1, c2, c3); //输出
}
//祝你学习进步,更上一层楼!(*^__^*)
// 统计整数里面各位 1 2 3 的个数
//******************************************************************************
#include <stdio.h>
int c1, c2, c3;
void fun(long n)
{
c1 = c2 = c3 = 0;
while (n != 0)
{
switch (n % 10)
{
case 1:
c1++;
break;
case 2:
c2++;
break;
case 3:
c3++;
}
n /= 10;
}
}
int main()
{
long n;
scanf("%ld", &n); //输入整数n
fun(n); //调用自定义函数fun
printf("C1=%d C2=%d C3=%d\n", c1, c2, c3); //输出
}
//祝你学习进步,更上一层楼!(*^__^*)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询