一 形参与实参

1).定义

形参:形式参数。

就是定义函数的时候,写在函数名小括号后面的参数叫形参

实参:实际参数。

就是调用函数的时候,调用函数时写在函数名小括号后面的参数就叫实参

2).注意项

a.实参既可以放常量,也可以放变量,还可以放表达式;形参:它其实可以理解为就是这个函数的局部变量

b.实参给形参传值,其实只是相当于给函数的形参(局部变量)赋值

c.值传递:在函数内改变了形参的值,不会影响到外面的实参

d.在C语言中,除了数组以外,所有的类型作为实参传递都是值传递

二 有参函数

带参数的函数定义语法:

void  函数名(类型 参数名){

函数体;

}

应用场景:当函数完成某个功能必须要外界传入一些数据的时候,就用参数

tips:代码例子如下

#include <stdio.h>

/*

* 判断一个数是不是水仙花数

*/

void isFlower(int num){

int bai = num / 100;

int shi = num / 10 % 10;

int ge = num % 10;

//如果 百*百*百 + 十*十*十 + 个*个*个 等于这个数

if( bai*bai*bai + shi*shi*shi + ge*ge*ge == num){

//就是水仙花数

printf("%d是水仙花数\n",num);

}else{

//    否则 不是水仙花数

printf("%d不是水仙花数\n",num);

}

}

//2、写一个函数,求指定某个数到某个数之间所有的整数的累加和

//如:3到8,算出3+4+5+6+7+8 = ?

void getN2MSum(int n,int m){

int sum = 0;

if(n < m){ //n比m小的情况

for (int i=n; i<=m; i++) {

sum += i;

}

}else{ //m比n小的情况

for (int i=m; i<=n; i++) {

sum += i;

}

}

printf("%d到%d之间的和为%d\n",n,m,sum);

}

// 3、用函数来实现判断一个年份是不是闰年

void isRunYear(int year){

if( year % 400 ==0  || (year%4==0 && year %100!=0) ){

printf("%d年是闰年\n",year);

}else{

printf("%d年是平年\n",year);

}

}

int main(int argc, const char * argv[]) {

//调用语法:函数名(实参列表);

isFlower(200);

getN2MSum(100,1);//10+11+12....+20

isRunYear(1900);

return 0;

}

C语言之形参和实参的更多相关文章

  1. C语言关于形参与实参,以及系统堆栈的关系

  2. C语言形参跟实参详解

    形参与实参今天我们来说下c语言形参与实参的区别,形参跟实参理解的话也很简单,但是好多同学关于这个知识点都是一知半解,没有真正的去透彻,一问都知道,但在真正引用的时候还会出现很多问题,而百度的时候又会说 ...

  3. C语言形参和实参的区别(非常详细)

    如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品:从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值.这一节我们先来讲解C语言函数的参数,下一节再讲解C语言函数的返回值.C语 ...

  4. C语言入门(8)——形参与实参

    对于带参数的函数,我们需要在函数定义中指明参数的个数和每个参数的类型,定义参数就像定义变量一样,需要为每个参数指明类型,并起一个符合标识符命名规则的名字.例如: #include <stdio. ...

  5. C语言中函数声明、形参、实参

    函数原型: 原型prototype是函数的声明:描述了函数的返回值与参数: 函数原型说明了两点: 1.该函数的返回值 2.该函数的参数及其类型 ++++++++++++++++++++++++++++ ...

  6. 计算机二级-C语言-字符数字转化为整型数字。形参与实参类型相一致。double类型的使用。

    //函数fun功能:将a和b所指的两个字符串分别转化成面值相同的整数,并进行相加作为函数值返回,规定只含有9个以下数字字符. //重难点:字符数字转化为整型数字. #include <stdio ...

  7. 计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。

    //函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出. //重难点:形参与实参之间,是否进行了 ...

  8. 嵌入式-C语言基础:理解形参和实参的区别

    #include<stdio.h> //实参:函数原型中声明函数后面带的参数 int test(int x)//函数原型 { //函数体 printf("test里面的x地址=% ...

  9. JavaScript中函数的形参和实参的实现原理剖析

    我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) ...

随机推荐

  1. openSUSE13.1安装Nodejs并更新到最新版

    软件源中直接安装Nodejs即可 sudo zypper in nodejs 查看nodejs版本 sincerefly@linux-utem:~> node --version v0.10.5 ...

  2. bundle install 出现 &#39;gem install mysql2 -v &#39;0.3.15&#39; succeeds before bunding &#39;

    bundle install 出现  'gem install mysql2 -v '0.3.15' succeeds before bunding ' 解决:sudo apt-get install ...

  3. postal邮件发送(一):基本配置

    前言 源码:https://github.com/andrewdavey/postal 文档:http://aboutcode.net/postal/ postal最大好处就是再也不用拼接html发送 ...

  4. Java凝视Override、Deprecated、SuppressWarnings详细解释

    一.什么是视线     说起目光,你必须先提什么是元数据(metadata). 所谓元数据是数据的数据.那.元数据是描述数据的叙述. 像在表中的数据字段,叙述了这个字段下的数据的含义.而J2SE5.0 ...

  5. C# 中参数验证方式

    C# 中参数验证方式 一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空, ...

  6. 关于wcf跨机器访问的问题

    在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话不多说了,正文如下: 1 ...

  7. Binder机制,从Java到C (6. Binder in Native : libbinder)

    1.Java和C++中的Binder 从前一篇 Binder机制,从Java到C (5. IBinder对象传递形式) 中可以看到,使用Binder的Java代码,到最后都会进入到Native环境,将 ...

  8. ASP.NET WEB API构建基于REST风格

    使用ASP.NET WEB API构建基于REST风格的服务实战系列教程[开篇] 最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http ...

  9. AHOI1997彩旗飘飘 VIJOS1097合并果子(noip2007)

    AHOI彩旗飘飘 这是一题类似于排列组合的题目吧...递推状态 数组f[100][100][100][2];表示红旗数目,黄旗数目,颜色改变的次数,末尾的旗的颜色(0为黄,1为红) 之后就是如何写递推 ...

  10. C/C++基础知识总结——数据的共享与保护

    1. 标识符的作用域与可见性 1.1 作用域 标识符的作用域包括:函数原型作用域.局部作用域.类作用域.命名空间作用域 (1) 函数原型作用域:函数的参与的作用域就是从函数的开始到结束 (2) 局部作 ...