C primer 第十章 函数 浅谈 实参和形参

使用函数的目的: 省去重复代码的编写,可以在多个地方调用,使得程序模块化

主要分三步: 声明函数原型  使用函数  定义函数

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define NAME "heipi"
 4 #define ADDRESS "wu han university of techonology "
 5 #define PLACE "shang hai , pu dong "
 6 #define WIDTH 40
 7 #define SPACE ‘ ‘
 8 void show_n_char(char ch , int num );
 9 int main()
10 {
11 int spaces;
12 show_n_char(‘*‘,WIDTH);
13 putchar(‘\n‘);
14
15 spaces=(WIDTH-strlen(NAME))/2;
16 show_n_char(SPACE,spaces);
17 printf("%s\n",NAME);
18
19 spaces=(WIDTH-strlen(ADDRESS))/2;
20 show_n_char(SPACE,spaces);
21 printf("%s",ADDRESS);
22
23 putchar(‘\n‘);
24
25 spaces=(WIDTH-strlen(PLACE))/2;
26 show_n_char(SPACE,spaces);
27 printf("%s\n",PLACE);
28 show_n_char(‘*‘,WIDTH);
29 printf("\n");
30
31
32
33 }
34
35 void show_n_char(char ch , int num )
36 {
37 int count ;
38 for(count=1;count<=num;count++)
39 putchar(ch);
40
41 }

清单9.2

形式参数:  形式参数是局部变量, 他们是 函数所私有。意味着在其他函数中可以使用相同的变量名

实际参数: 通过实际参数对上面的 ch , num 赋值 ,实参可以是常数,变量,一个复杂的表达式,无论何种形式的实际参数,执行的时候首先要计算他的值,然后将

该值 复制 给 被调用函数中的相应的形式参数, 这里是 值传递,那么关于地址传递呢,That‘s another story . 我们以后再讲。 记住是 复制 。所以不管在被调用函数

对复制的数值进行怎样的操作, 调用函数中的原数值不会受到任何影响的。这和指针的地址传递还是有区别的。

时间: 2024-11-29 00:05:59

C primer 第十章 函数 浅谈 实参和形参的相关文章

python中函数定义之实参、形参

一般在函数的定义中,会有一类变量---形参,它是函数完成其工作的一项信息.实参往往是调用函数时传递给函数的信息.我们在调用函数时,将要让函数使用的信息放在括号内.例如定义一个函数def greet_user(username):,在调用greet_user('jeese')中,将实参'jeese'传递给了函数greet_user(),这个值被存储在形参username中. 传递实参有很多种方式,下面了解一下他们. 1.位置实参 在调用函数时,每个实参要与定义中的形参关联起来.最简单的关联方式就是

Javascript-回调函数浅谈

回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 中文名 回调函数 外文名 Callback Functions 意思 通过函数指针调用的函数 作用 对特定的事件或条件进行响应 机制 听语音 ⑴定义一个回调函数: ⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者

Sql Server存储过程和函数浅谈

今天给大家总结一下sql server中的存储过程和函数.本人是小白,里面内容比较初级,大神不喜勿喷 自行飘过就是.. 首先给大家简单列出sql server中的流控制语句,后面会用到的^_^ sql server常用控制语句 1.begin..end语句:该语句用来定义一串由顺序执行的SQL语句构成的块. begin statement block end 2.if....else语句:该语句用来定义有条件执行的某些语句. if boolen_expression statement [els

C# eval()函数浅谈

<%# Bind("Subject") %> //绑定字段 <%# Container.DataItemIndex + 1%> //实现自动编号<%# DataBinder.Eval(Container.DataItem, "[n]") %>通常使用的方法(这三个性能最好)<%# DataBinder.Eval(Container.DataItem, "ColumnName") %><%# D

Unix/Linux程序设计之getopt函数浅谈

Linux中getopt函数用法:    1.函数作用: getop函数用于解析命令行参数的以'-'或者'--'开头的参数选项,除去'-'或者'--'选项元素    如果被重复调用,则它将会依次返回每个选项元素中选项字符.    2.函数原型:        #include <unistd.h>     int getopt(int argc, char * const argv[],                   const char *optstring);     extern 

开发技术--浅谈Python函数

开发|浅谈Python函数 函数在实际使用中有很多不一样的小九九,我将从最基础的函数内容,延伸出函数的高级用法.此文非科普片~~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 首先介绍函数是什么,接着走进函数,并且发现函数的高级使用方法,最后列出常用的Python的内置函数. 函数是什么? 1.函数,在代码执行的是不执行,只有在调用函数的时候才会执行. 2.函数使用

泛型编程与C++标准模板库 : 浅谈sort()排序函数

以前用sort排序的时候,只知道sort函数有如下两种重载方式. template< class RandomIt > void sort( RandomIt first, RandomIt last ); template< class RandomIt, class Compare > void sort( RandomIt first, RandomIt last, Compare comp ); 当时对这些参数也不是很懂,只知道一些简单的用法. 1).比如: 如下代码可以使

浅谈函数 ——初学者视角

浅谈函数 --初学者视角   一.认识函数 1.定义:具有独立功能,并能通过名称重复使用的代码 2.函数声明的语法: static void 函数名() { //函数体 } 3.函数的特点 (1)函数分为声明和调用,必须先声明后调用 (2)函数的声明是指给一段代码取名称 (3)函数的调用是指通过函数名称去执行函数体 (4)使用函数可以减少重复代码,并使代码简洁易读 (5)函数声明的位置必须在类中,实际就是与主函数并列,从上到下依次运行 二.函数的分类 以目前所学的知识,我把函数分为不需要返回值的

浅谈reverse_iterator的base()函数

非原创,原文链接:http://blog.csdn.net/shuchao/article/details/3705252 调用reverse_iterator的base成员函数可以产生"对应的"iterator,但这句话有些辞不达意.举个例子,看一下这段代码,我们首先把从数字1-5放进一个vector中,然后产生一个指向3的reverse_iterator,并且通过reverse_iterator的base初始化一个iterator: vector<int> v; v.r