函数:

 一组特定功能的代码段,之所以使用函数,为了在文件多处需要同一段代码时可以多次重复利用,减少代码冗余.

//函数的声明

  返回值类型 函数名称 ( 数据类型 形参1,数据类型 ,形参2 ) ;

//函数的定义

  返回值类型 函数名称 ( 数据类型 形参1,数据类型 ,形参2 ){...}

以下是函数的4中表现方式:

//无返回值无形参

void 函数名称1( ){..}

  void myPlay( ){

    printf("hello ,大家好,这是一个无返回的无形参的数字");

  }

// 无返回值有1到多个形参面,当无返回值的时候一定要家void,不能省。

void 函数名称2( int a , int b ){...}

  void myPlay2(int a, int b ){

    printf("a的只是%d,和b的只是%d",a,b);

  }

//有返回值无形参

int 函数名称3( ){..}

  int  myPlay3( ){

    return 45;   //定义有返回值的时候,return 必须有,无论你是retrun  神马

  }

//有返回值和有形参

数据类型 函数名称4( float a, float b ){...}

  int  myPlay4( ){

    int c = a + b ;

    return  c ; 

  }

注意,函数必须需要先声明后定义,最后才能被main函数调用,

函数声明一般在main函数前面, 函数定义可以在main函数前面和后面, 在main函数中调用用户自定义函数.

函数的形参和实参的关系:

1.形参是函数内部声明的变量,它的作用域在仅仅函数内部,函数执行完毕后,形参的值会消失.

2.函数内部修改形参变量的值,外面的实参的值不变,

3.实参跟函数调用有关, 形参拷贝实参的值,但是他们不是指向同一个内个地址.

int sum (int a, int b);   a和b是形参.a和b变量只能在函数内部使用.

int sum (int a , int  b){

  int sum  = a + b;

  printf("a的内存地址是%p\n",&a);  //a的内存地址 ,a于x不在同一内存区间.就是里面的值相同.

  return sum;

}

int main( ){

  int x =30,y = 50;   // x于y就是实参

  printf("x的内存地址是%p\n",&x);  //x的内存地址 %p占位符

  printf("sum的值为:%d\n",sum(x,y));

}

数组作为参数.只需要传递数组名称即可,将数组在内存中的首地址传递给函数.

void printArray( int arr[ ] );

void printArray( int arr[ ]){

  arr[0] =33;  //改变数组a[0]的值.    

}

int main( ){

  int arr[] ={0,1,2,3,4,5,6,7,8,9};

  printArray( arr );  // 只需传入arr 数组名称

  for( int i =0 ; i< 10 ;i++ ){

     printf("The end of Result :%d\n",arr[ i ]);   //{33,1,2,3,4,5,6,7,8,9}

     //  传递数组首地址,共享同一内存区域.函数内部改变,main函数中调用也会改变.

  }

}

函数dayOfYear(year, mouth,day),使得函数返回这三个参确定的那一天是⼀年中的第几天??

int dayOfYear(year, mouth,day);

int dayOfYear(year, mouth,day){

  int feb = 0;

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

    feb = 29;

  }else{

    feb = 28;

  }

 int mouths ={31,feb,31,30,31,30,31,31,30,31.30,31};

  for(int i = 0 ;i < (mouth -1);i++ ){

    day+=mouths[i];

  }

  return  day;

}

编写函数,返回正整数n中的数字的个数

int countNum(unsinger long N ){

  int count = 0;

  while(N > 0 ){

    N =N /10;

    count++;

  }

  return count;

}

C语言基础06的更多相关文章

  1. PHP语言基础06 MySql By ACReaper

    上篇介绍了如用PHP连接上MySql进行,并进行sql语句的执行.但是我们没有介绍,如何输出处理的结果,如何获得处理的结果. 这里要先说明Mysql有两种查询处理模式,一种是有缓冲的查询处理模式,一种 ...

  2. Java入门 - 语言基础 - 06.变量类型

    原文地址:http://www.work100.net/training/java-variable-type.html 更多教程:光束云 - 免费课程 变量类型 序号 文内章节 视频 1 概述 2 ...

  3. [06 Go语言基础-包]

    [06 Go语言基础-包] 包 什么是包,为什么使用包? 到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数.在实际中,这种把所有源代码编写在一个文件的方 ...

  4. 01_C语言基础

    内容提要: 1. C语言概述2. 数据类型.运算符与表达式3. C语言程序结构 4. VC6.0使用练习 知识详解01:C语言的历史 1. C语言与其它语言比较 汇编语言: (1).可直接对硬件进行操 ...

  5. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB

    走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...

  6. D14——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...

  7. D05——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D05 20180815内容纲要: 1 模块 2 包 3 import的本质 4 内置模块详解 (1)time&datetime (2)datetime ...

  8. 2008技术内幕:T-SQL语言基础 联接查询摘记

    续 2008技术内幕:T-SQL语言基础 单表查询摘记 第三章 联接查询 Microsoft SQL Server 2008 支持四种表运算符 join(ANSI标准).apply(T-SQL扩展). ...

  9. 有语言基础的人应该如何学习python?

    正好最近在学python,感觉有语言基础的话更多在乎一些语法糖,毕竟其他东西在之前应该接触过了. 笔者C++是起始语言,也接触过java.js,介绍一点python的特点吧.帮助自己巩固所学,也希望能 ...

随机推荐

  1. deepin 2014 静态IP无法保存,临时方法

    打开终端: #临时添加静态IP ifconfig eth0 [ip] netmask [掩码] #添加默认网关 route add default gw [网关] #添加DNS vim /etc/re ...

  2. centos6.4x64安装vncserver

    参考文章:http://blog.csdn.net/mchdba/article/details/43058849 主要是远程安装oracle11g需要用到这个东西: 进入系统依次执行下列命令: #查 ...

  3. Qt中实现启动画面(延时过程中要加上app.processEvents())

    纵所周之,当一个程序的启动比较耗时的时候,为了不让用户枯燥的等待或者是误以为程序运行异常了,所以我们都会在启动比较耗时的程序中加上启动界面 ,例如office软件等等. 在Qt中实现启动界面,主要就是 ...

  4. X windows的底层实现机制

    Qt在Linux上运行崩溃了,很可能的原因是对于X11机制的不了解.很可能是UI代码里面对窗口的操作不规范而导致Qt内部的BUG暴露出来.具体UI实现代码我也没有看.是别人维护的.打算今天去看下代码, ...

  5. 自定义searchview的编辑框,搜索按钮,删除按钮,光标等

    //指定某个私有属性 Field mSearchHintIconField = argClass.getDeclaredField("mSearchHintIcon"); mSea ...

  6. 贝塞尔曲线:原理、自定义贝塞尔曲线View、使用!!!

    一.原理 转自:http://www.2cto.com/kf/201401/275838.html Android动画学习Demo(3) 沿着贝塞尔曲线移动的Property Animation Pr ...

  7. hdu 4502 吉哥系列故事——临时工计划_简单dp

    题意:        俗话说一分钱难倒英雄汉,高中几年下来,吉哥已经深深明白了这个道理,因此,新年开始存储一年的个人资金已经成了习惯,不过自从大学之后他不好意思再向大人要压岁钱了,只能把唯一的希望放到 ...

  8. Python中的深浅拷贝,赋值及引用

    简单来说,若对象a中存的是列表或字典等可变对象,b对a的浅拷贝只是对对象第一层的复制,修改b第二层的元素仍然会影响两个对象. 深拷贝则是不会影响原来的对象. import copy.copy() 浅拷 ...

  9. python2 和3的区别

    __future__ 模块 Python 3.x引入一些Python2不兼容的关键字和函数,可以通过在 Python2 内置的模块 __future__ 导入.建议如果你想在代码中支持 Python3 ...

  10. Unity 使用实体类

    故事的由来: 正在开发打飞机的游戏,遇到这样的数据结构,游戏有很多关卡-> 每个关卡有几波怪物->每一波里面有怪物和数量 [] 关卡 { []波{ {怪物,数量},{怪物,数量},{怪物, ...