void的含义:
# include <stdio.h>
int f(void) //void表示不接收任何数据,int表示返回int类型值,即下面的 return 10;
{
return 10; //向主调函数返回10,即向main函数中调用的语句返回10这个值。
}
void g(void) //函数名前的void表示该函数没有返回值。
{
//return 10; //错误,与上面的void相矛盾,不能有返回值。
}
int main(void)
{
int i = 88;
int j = 5201314;
i = f(); //因为f函数不接收任何数据,所以括号内为空,调用函数后,f函数返回10,i的值变为10。
//j = g(); //因为g函数没有返回值,所以不能赋值给j。注意:没有返回值不是返回0,而是返回为空!
printf("%d\n", i);
printf("%d\n", j);
return 0;
}
break与return的区别:
# include <stdio.h>
void f(void)
{
int i;
for(i=0; i<5; i++)
{
printf("呵呵!\n");
break; //break用于终止for循环。
}
return; //return用于终止整个函数。
printf("哈哈!\n");
}
int main(void)
{
f();
return 0;
}
函数练习——多次求素数:
# include <stdio.h>
//本函数功能是判断一个数是否为素数,如果是,则返回true,如果不是,则返回false。
bool IsPrime(int m)
{
int i;
for (i=2; i<m; ++i)
{
if (0 == m%i)
break;
}
if (i == m)
return true;
else
return false;
}
//本函数功能是输入1到n所有的素数。
void TraverseVal(int n)
{
int i;
for (i=2; i<=n; ++i)
if ( IsPrime(i) )
printf("%d\n", i);
}
int main(void)
{
int i;
int val;
int j;
printf("请输入需要求的次数:");
scanf("%d", &i);
for (j=1; j<=i; ++j)
{
printf("请输入第 %d 次上限:", j);
scanf("%d", &val);
TraverseVal(val);
}
return 0;
}全局变量与局部变量:
# include <stdio.h>
int k = 1000; //k即为全局变量,即可供所有函数使用。
void f(int i)
{
int j; //形参i和定义变量j都为局部变量,即仅供函数内部使用。
printf("k = %d\n", k);
}
int main(void)
{
int m = 10;
f(m);
return 0;
}
全局变量与局部变量的命名冲突问题:
# include <stdio.h>
int i = 99;
void f(int i)
{
printf("i = %d\n", i);
}
int main(void)
{
f(8);
return 0;
}
/*
输出结果为:i = 8 即当全局变量名与局部变量名相同时,会默认采用局部变
量,即局部变量(Private)优先级>全局变量(Public)。
*/

本文详细解析了C语言中的函数定义与调用过程,包括void关键字的作用、函数的返回值与参数传递方式,以及break与return的区别。此外,还介绍了如何通过函数实现多次求素数的功能,并探讨了全局变量与局部变量的概念及其命名冲突问题。
&spm=1001.2101.3001.5002&articleId=47208301&d=1&t=3&u=d2b658a7a8f549c4bf5681c21dd96532)
1204

被折叠的 条评论
为什么被折叠?



