C语言编程入门——函数(下)

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)。
*/

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 19:34:30

C语言编程入门——函数(下)的相关文章

C语言编程入门——函数(上)

函数是结构化编程语言中最重要的组成部分,模块独立化的基本单位. 函数的声明: # include <stdio.h> void f(void); //函数的声明,即声明f是一个函数. void g(void); void f(void) { printf("哈哈!\n"); printf("哈哈!\n"); printf("哈哈!\n"); } int main(void) { f(); f(); g(); return 0; } v

《Go语言编程入门》视频课程开课了

作为拥有多年工作经验的运维老鸟,我没有选择运维常用的Python作为我今后的主要使用语言.Python编写运维程序的开发效率虽然很高,但随着代码量的增大,以及Python的缩进式语法结构,可读性和维护性并不很高.加之Python本身的设计,并不原生支持多线程多核,我考虑到当程序代码达到一定规模时,必然会考虑它的执行效率和维护成本.最终放弃了Python,选择语言的过程中被Google新出的Go语言吸引了.Go本身脱胎于C,语法和C比较像,我本身就一直学习和编写C和PHP程序,习惯了大括号的语法结

linux 操作系统下c语言编程入门

2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计入门--网络编程 9)Linux下C开发工具介绍 1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编

C语言编程入门——动态内存分配

内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源.内存管理是C语言编程中重要的组成部分,C语言中的内存需要手动分配,手动释放,一般遵循分配多少,释放多少,以免造成内存泄漏.内存管理是一项重要且复杂的事情,理解内存管理,对后面课程及项目的学习会有很大的作用. 之前创建变量,是系统自动分配的内存,放在栈内存中,销毁后被系统自动回收,手动分配的内存,放在堆内存中,需要手动释放.千万不要忘记销毁对象手动将内存释放并将指针

C语言编程入门——指针(下)

函数的重载: # include <stdio.h> void swap(void) { printf("呵呵!\n"); return; } void swap(int i, int j) { printf("哈哈!\n"); return; } int main(void) { swap(); swap(1, 2); //函数名相同,形参个数不同,也不是同一个函数. int i = 3; printf("i = %d\n", i)

C语言编程入门——指针与函数、数组

总结一下指针与函数和数组的关系及相关练习. 传统数组的缺点: # include <stdio.h> int main(void) { //数组的定义 int len = 5; int a[len]; //错误,数组的长度必须直接指定,且不能更改. int b[5]; //正确. return 0; } 确定一个数组需要几个参数: # include <stdio.h> //本函数功能是输出任意一维数组. void string(int * p, int l) //函数对数组进行处

C语言编程入门——程序练习(下)

C语言的一些简单操作练习. 互换两个数字: # include <stdio.h> int main(void) { int i = 3; int j = 5; int t;   //将i与j的值交换 t = i; i = j; j = t; printf("i = %d, j = %d\n", i, j); return 0; } 输出任意字符任意层的金字塔: # include<stdio.h> main() { int a,i,j; char c; pri

C语言编程入门——循环(下)

求1至1000的所有素数: # include <stdio.h> bool IsPrime(int val) //判断val是否为素数 { int i; for (i=2; i<val; i++) { if (val%i == 0) break; } if (i == val) return true; else return false; } int main(void) { int val; for (val=2; val<=1000; val++) { if (IsPrim

C语言编程入门——数组(下)

这里讲了对数组元素的操作及二维数组与多维数组,注意,多维数组在内存中也是线性排列存放的. 将数组中的元素倒序排列: # include <stdio.h> int main(void) { int a[7] = {1, 2, 3, 4, 5, 6, 7}; //升序对数组赋值 int i, j, t; i = 0; j = 6; while (i < j) //倒序排列 { t = a[i]; a[i] = a[j]; a[j] = t; ++i; --j; } /* for (i=0,