iOS学习05C语言函数
本次主要是学习和理解函数,函数树状图如下:

1、函数的声明和定义
返回值类型 :函数的结果值类型,函数不能返回数组。
指定返回类型是void类型说明函数没有返回值。
函数名 :函数名命名规范和变量名命名规范一样。
参数列表 : 每个形式参数的前面说明其类型,即使几个参数具有相同的数据类型,也必须对每个形式参数分别进行类型说明。形式参数用逗号进行分隔,就算没有参数函数后面的()也不能省略,可以写成(void)。
函数体 :函数功能的实现。
返回值类型 函数名(参数类型 参数名,...) {
功能语句;
return 返回值;
}
返回值
一个函数只能有一个返回值。
,回到主调函数。
return后面的语句不再执行。
void test() {
printf("我在return语句之前");
return;
printf("我在return语句之后");//不执行
}
函数声明
函数声明:指的就是函数的描述,也叫函数原型。
函数声明:
1、函数定义出现在主调函数之前,可以省略函数声明。
2、函数定义出现在主调函数之后,需要提前声明函数。
函数声明尽管可以省略,从规范来讲,不要省略。
// 1.函数声明
int maxValue(int, int);
// 2.函数定义
int maxValue(int a, int b) {
return a > b ? a : b;
}
2、函数分类
库函数(系统提供好的函数,例如printf)
printf(“Hello Lanou\n”);
scanf(“%d”, &number);
strlen(string);
strcpy(string1, sthring2);
...
printf 输出函数, 用于输出一个信息
scanf 输入函数,用于从键盘输入一个信息
strlen 求字符串长度函数,用于求指定字符串的长度
strcpy 字符串拷贝函数,用于实现字符串复制
...
自定义函数(开发者自己写的函数)
void sayHello() {
printf("hello, 约吗?");
}
void printSum(int a, int b) {
int sum = a + b;
printf("sum = %d\n", sum);
}
int randomValue() {
return arc4random() % ;
}
int mulValue(int a, int b) {
int mul = a * b;
return mul;
}
3、函数调用
函数名();
对上面函数的调用
sayHello();
printSum(, ); int random = randomValue();
printf("random = %d\n", random); int mul = mulValue(, );
printf("mul = %d\n", mul);
4、形参实参
形参:形式上的参数,函数定义时使用的参数,以假名字来表示函数调用时需要提供的值,作用范围为整个函数范围。
实参:函数调用的时候传过去的参数值,出现在函数调用中的表达式。
5、函数嵌套
6、数组作为参数传递
数组作为参数是按地址传递的
数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送, 也就是说把实参数组的首地址赋予形参数组名。形参 数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
// 定义函数,打印数组中所有的元素
void printArray(int a[], int count) {
for (int i = ; i < count; i++) {
printf("%d\n", a[i]);
}
}
int main(int argc, const char * argv[]) { // 数组作为函数参数
// 数组名是数组元素首地址 int array[] = {, , , , , };
int count = sizeof(array) / sizeof(int); printArray(array, count); return ;
}
7、作用域
变量作用域决定了变量的使用范围
局部变量
在函数内部定义的变量称为局部变量
作用域:从定义开始,到 ' } ' 结束
不同的函数中可以定义相同的变量,因为作用域不同
全局变量
在函数外部定义的变量称为全局变量
作用域:从定义位置开始,到文件结束
定义在主函数中,在其他.m文件中使用时,需要使用extern声明
iOS学习05C语言函数的更多相关文章
- iOS学习09C语言函数指针
本次主要学习和理解函数指针 1.函数指针 void printValue(int number) { printf("number = %d\n", number); } int ...
- C语言基础:函数指针 分类: iOS学习 c语言基础 2015-06-10 21:55 15人阅读 评论(0) 收藏
函数指针:指向函数的指针变量. 函数名相当于首地址. 函数指针定义:返回值类型 (*函数指针变量名)(参数类型1,参数类型2,....)=初始值 函数指针类型:返回值类型 (*)(参数类型1,参数 ...
- C语言基础:函数(Function) 分类: iOS学习 c语言基础 2015-06-10 21:48 14人阅读 评论(0) 收藏
函数:一段具有某些特定功能的代码段. 使用函数的严格规定: 1.函数声明 2.函数定义 3.函数调用 函数声明:告知系统编译器该系统的函数名,函数参数,参数类型,参数个数,参数顺序等等,以便函数调用时 ...
- C语言基础总结 分类: iOS学习 c语言基础 2015-06-11 10:08 23人阅读 评论(0) 收藏
//欲练此功必先自宫!!! //第一天:C语言的基础 //进制 //2进制, 10进制, 8进制, 16进制 //注:8进制数前加0, 16进制数前加0x ...
- 菜鸟学习-C语言函数参数传递详解-结构体与数组 分类: C/C++ Nginx 2015-07-14 10:24 89人阅读 评论(0) 收藏
C语言中结构体作为函数参数,有两种方式:传值和传址. 1.传值时结构体参数会被拷贝一份,在函数体内修改结构体参数成员的值实际上是修改调用参数的一个临时拷贝的成员的值,这不会影响到调用参数.在这种情况下 ...
- iOS学习06C语言结构体
1.结构体的概述 在C语言中,结构体(struct)指的是一种数据结构,是C语言中构造类型的其中之一. 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名.年龄.身高 ...
- iOS学习04C语言数组
1.一维数组 数组:具有相同类型的成员组成的一组数据 1> 定义 元素:数组中存放的数据成为数组的元素 数组是构造类型,用{...}来给构造类型赋初始值,类型修饰符用来表示元素的类型 类 ...
- iOS学习02C语言分支结构
1. BOOL类型 返回值:真:YES 假:NO BOOL数据类型占一个字节的内存空间,占位符为%d. 计算机在识别时,YES就替换成1,NO就替换成0. bool是C语言中的布尔类型,返回值为tr ...
- C语言基础:数组 分类: iOS学习 c语言基础 2015-06-10 21:40 7人阅读 评论(0) 收藏
数组:是由一组具有相同数据类型的数据组合而来. 数组定义:元素类型修饰符 数组名[数组个数]={元素1,元素2....}; int arr[ 2 ]={1,2}; //正确 int arr[ ...
随机推荐
- How To Use Proguard in Android APP
在Android开发完成即将发布给用户使用时,还有最后重要的一步:代码混淆,这时候,Proguard就派上用场了,大家谁也不想辛辛苦苦写的代码太容易被别人反编译过来,而Proguard就是帮我们实现这 ...
- PAL/NTSC 制电视广播技术有关知识--FPGA
1.PAL和NTSC的区别 常见的电视信号制式是PAL和NTSC,另外还有SECAM等. NTSC即正交平衡调幅制,PAL为逐行倒像正交平衡调幅制. (1)PAL电视标准 PAL电视标准,每秒25帧 ...
- js获取缓存数据
后台:request.setAttribute("type", type); 前台js获取:var type = "${type}";
- Android Attr -- Understanding Android Custom Attributes
原文:http://androidbook.com/item/4169
- [javascript] 使用闭包编写模块
这是一篇[javascript the good parts]的读书笔记. 我们知道可以利用javascript 的prototype 特性为原始类型编写拓展模块.利用如下方法: Object.pro ...
- Vmware 中安装Unix
准备 1. ubuntu 14.10 下载地址: 官网下载链接 http://www.ubuntu.com/download/desktop 官方版本库 http://releases.ubuntu. ...
- 初识SQL Server Integration Service
SSIS(SQL Server Integration Service)是Microsoft 从SQL Server2005 以后发布的,现在一直跟随每个SQL server版本.它是Microsof ...
- 用PHPcms V9四步完成WAP手机站搭建
用PHPCMS最新发布的V9搭建了ONOW中文网,WEB网站(www.onow.cn)完成后,有用户提供手机访问的问题, 于是着手搭建ONOW手机WAP站(3g.onow.cn). 用PHPCMS V ...
- Cygwin的安装与配置
去cygwin的官网去下载: 安装: 初次安装 卸载 使用过程中安装新的工具包 参考http://blog.csdn.net/superbinbin1/article/details/10147421 ...
- 在Salesforce中向Page Layout中添加Visualforce Page
在Salesforce中可以向Object所对应的Layout中添加我们自定义的Visualforce Page. 此时的Visualforce Page与Asp.Net MVC中的Partial V ...