C语言函数——声明、调用及值传递方式

前言:这一周数据结构的视频笔记没有总结(主要是没有看多少),写博客只有翻出原来的存货,我学习C时函数部分的笔记,其中关于函数具体的声明、定义、调用等具体操作可以看具体的书本理解,但是函数和main( )函数之间的值传递才是要关注的重点。

一、函数的定义和基本形式

1、定义:函数(function)是完成特定独立程序的代码单元;通过使用函数,使得程序更加的模块化,从而提高了程序代码的可读性,方便后期修改、完善;

2、基本形式(由一个例子引出)

/* 函数举例1 */
#include<stdio.h>
#define NAME "Star Jiang."
#define ADDRESS "101 Malanpo Street."
#define PLACE "NHCU-sao."
#define WIDTH 40

void starbar(void);    //函数原型

int main(void)
{
	starbar();         //函数调用
	printf("%s\n",NAME);
	printf("%s\n",ADDRESS);
	printf("%s\n",PLACE);
	starbar();
	
	return 0;
}

void starbar(void)   //函数定义
{
	int count;
	
	for(count = 1; count <= WIDTH;count++)
		putchar('*');
		putchar('\n');
}
	

三、函数的调用和返回

1、函数的调用

  • 调用形式:函数名(参数值)
    starbar( );
  • ( )起到了表示函数调用的作用
  • 即使没有参数也需要
  • 如果有参数,则需要给出正确的数量和顺序;

2、函数的返回

1)函数知道每一次哪里调用它,它就返回到正确的位置;

2)从函数中的返回值

  • return停止函数的执行,并送回一个值
  • return;
  • return 表达式;
  • 注意:单一出口设计理念,一般就安排一个返回值
  • 如果需要返回多个值,应给考虑用指针返回;

3、没有返回值的函数
调用形式:

  • void 函数名(参数表)
  • 不能使用带值的return
  • 可以没有return
  • 调用函数时不能做返回值的赋值;

三、函数的值传递

1、调用函数

  • 如果函数有参数,调用时必须传递给它数量、类型正确的值;
    如:
double max(double a,double b); //函数原型
{
 }

int main()
{
	max(12.34,18.57);    //函数调用
}

double max(double a,double b)  //函数定义
{
}


  • 可以传递给函数的值是表达式的结果,这包括
    字面量;
    变量;
    函数的返回值;
    计算的结果;
int a,b,c;
a = 5;
b = 6;
c = max(10,12);  //字面量
c = max(a,b);    //变量
c = max(c,23);
c = max(max(23,25),a);   //函数的返回值
c = max(23+25,b);        //计算的结果

2、值传递细节

  • 每个函数都有自己的变量空间,参数也位于这个独立的空间,和其它函数没有关系;
  • 过去,对于函数参数表中的参数,叫做“形式参数”,调用参数时给的值叫“实际参数”;
  • 由于容易让初学者误会实际参数就是实际在函数中进行计算的参数,误会调用参数时是“把变量而不是值传进去”。
  • 注意:C语言在调用函数时,永远只能传值给函数
发布了9 篇原创文章 · 获赞 9 · 访问量 254

猜你喜欢

转载自blog.csdn.net/Star_jiang/article/details/105019994