C语言基础06
函数:
一组特定功能的代码段,之所以使用函数,为了在文件多处需要同一段代码时可以多次重复利用,减少代码冗余.
//函数的声明
返回值类型 函数名称 ( 数据类型 形参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的更多相关文章
- PHP语言基础06 MySql By ACReaper
上篇介绍了如用PHP连接上MySql进行,并进行sql语句的执行.但是我们没有介绍,如何输出处理的结果,如何获得处理的结果. 这里要先说明Mysql有两种查询处理模式,一种是有缓冲的查询处理模式,一种 ...
- Java入门 - 语言基础 - 06.变量类型
原文地址:http://www.work100.net/training/java-variable-type.html 更多教程:光束云 - 免费课程 变量类型 序号 文内章节 视频 1 概述 2 ...
- [06 Go语言基础-包]
[06 Go语言基础-包] 包 什么是包,为什么使用包? 到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数.在实际中,这种把所有源代码编写在一个文件的方 ...
- 01_C语言基础
内容提要: 1. C语言概述2. 数据类型.运算符与表达式3. C语言程序结构 4. VC6.0使用练习 知识详解01:C语言的历史 1. C语言与其它语言比较 汇编语言: (1).可直接对硬件进行操 ...
- 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB
走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...
- D14——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...
- D05——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D05 20180815内容纲要: 1 模块 2 包 3 import的本质 4 内置模块详解 (1)time&datetime (2)datetime ...
- 2008技术内幕:T-SQL语言基础 联接查询摘记
续 2008技术内幕:T-SQL语言基础 单表查询摘记 第三章 联接查询 Microsoft SQL Server 2008 支持四种表运算符 join(ANSI标准).apply(T-SQL扩展). ...
- 有语言基础的人应该如何学习python?
正好最近在学python,感觉有语言基础的话更多在乎一些语法糖,毕竟其他东西在之前应该接触过了. 笔者C++是起始语言,也接触过java.js,介绍一点python的特点吧.帮助自己巩固所学,也希望能 ...
随机推荐
- 基于epoll的聊天室程序
epoll相对于poll和select这两个多路复用的I/O模型更加的高效.epoll的函数很简单,麻烦的地方在于水平触发和边沿触发. 用张图来说明下 ET(边沿)只是在状态反转时触发,比如从不可读到 ...
- C# System.Object基类
System.Object 基类 System.Object在.Net中是所有类型的基类,任何类型都直接或间接地继承自System.Object.没有指定基类的类型都默认继承于System.Objec ...
- Linux删除乱码文件或者目录
Linux删除乱码文件或者目录 有时在Linux下面解压一些zip或者rar文件后会产生乱码文件或者目录,这个时候使用rm不能成功删除,需要使用一些特别的方法 来进行删除,下面是我经常使用的两种方法. ...
- uestc poj2559 秋实大哥去打工
//感觉有必要把这题放博客上待复习 刚刚写解题报告的时候发现自己又不会做这题了 //我不会告诉你这题绝对是命题人抄poj2559 这题使用一个单调递增的栈,栈内存储的元素有两个值,一个高度,一个长度. ...
- Lake Counting (POJ No.2386)
有一个大小为N*M的园子,雨后积起了水,八连通的积水被认为是链接在一起的求出园子里一共有多少水洼? *** *W* *** /** *进行深度优先搜索,从第一个W开始,将八个方向可以到达的 W修改为 ...
- textContent、innerText 以及Event事件兼容性问题
今天在完成前端的简单练习时发现了一些兼容性的问题,百度后得以解决. 这里主要讨论Firefox与Chrome的兼容性问题. textContent与 innerText 在javascript中, 为 ...
- UVa 1394: And Then There Was One
设置一个数组Winner记录经典约瑟夫问题中的剩余者即可递归解决该问题. 注: 约瑟夫问题:有编号为0~n-1的n个人,从0号开始报数1,2,3......报到k的杀死,然后从下一个人开始继续报数1, ...
- Yeslab现任明教教主数据中心Nexus课程 视频教程 下载
Yeslab现任明教教主数据中心Nexus课程 视频下载 视频教程下载目录: Yeslab现任明教教主数据中心Nexus课程第1部分.rar Yeslab现任明教教主数据中心Nexus课程第2部分.p ...
- Swift的基础,操作符,字符串和集合类型
这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载. Basic 声明常量let 声明变量var 注释依旧使用"//" ...
- 理解java设计模式之观察者模式
在生活实际中,我们经常会遇到关注一个事物数据变化的情况,例如生活中的温度记录仪,当温度变化时,我们观察它温度变化的曲线,温度记录日志等.对于这一类问题,很接近java设计模式里面的“观察者模式”,它适 ...