摘要:本文将带你了解IOS开发入门iOS开发系列----C语言(指针及递归函数),希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门iOS开发系列----C语言(指针及递归函数),希望本文对大家学IOS有所帮助。
指针及递归函数概述
1.认识指针
【地址】内存每个字节都有一个数字的编号,称为地址。
【指针】指针是一个变量,用来装地址。
【注】指针是地址变量,地址是指针常量
2.指针的作用
①同一个栈内的数据处理,使用指针没有意义;
②指针就是用来访问栈外面的空间;
③指针就是用来跨栈的
3.空指针和野指针
【空指针】值为0的指针(NULL)
【野指针】指针的值未知,或者说指向了未知的地方
【泛型指针】void *p
4.函数的递归调用
调用自身的函数,称为递归函数,调用自身的行为称为递归调用?【注】函数的递归调用只能用于静态的数据运算,如果是动态数据,风险过高,容易崩溃。
方法
①首先确定临界值,即无需计算,获得的值;
②找这一次和上一次的关系;
③假设当前函数已经可以使用,调用自身计算上一次的运行结果,再写出这次的运行结果
指针及递归函数讲解
1.递归函数
//栈空间溢出 int func(int n)
{ if (n == 1)
{ return
1; } return func(n - 1) +
n; } //任何函数都可以调用任何函数int main(int argc, const char * argv[])
{ printf("%d",func(4)); return
0; }
2.认识指针
当一个指针p,装了变量a的地址,称为p指向了a。
//取变量的地址,取的是变量的首地址。int a = 5;int *p = &a;*p = a;
【注】p:根据p里面存的地址,找到这个地址,取这个类型的大小,它是一个运算,相当于&a,找到地址为&a的那个字节,取*p个字节,得到一个变量,就是a。举个例子:p就相当于天猫,a是我们,p=&a是填写物流地址的过程,*p就是送货,整个过程为注册—邮寄地址—送货的过程
1int main(int argc, const char * argv[])
{ //声明整型变量a,存储数字5,用相应指针指向a,通过指针,将a修改成6. int
a = 5; int *
p; //用相应指针指向a p =
&a; //
通过指针,将a修改成6. *p =
6; printf("a=%d\n",a); return
0; }
2.指针的加法运算:?指针+1,加一个*p的字节数,加一个p指向变量的字节数
int main(int argc, const char *
argv[]) { char
c; int a; int *p =
&a; //p+1与p相比增加了4字节 printf("%p\n",p); printf("%p\n",p+1); //q+1比q增加了一个字节 char
*q =
&c; printf("%p\n",q); printf("%p\n",q+1); return
0; }
3.指针与数组:数组是指针的常量,指针是数组的变量
int main(int
argc, const char * argv[]) { int a[5] = {1,3,5,7,10}; //数组名是数组首元素地址 int
* p = &a[0]; printf("p =
%p\n",p); printf("p+1 =
%p\n",p+1); //取到首元素 *p
= a[0]; printf("*p =
%d\n",*p); printf("*(p+1)=%d\n",*(p+1)); printf("*p+1=%d",*p+1); //指针+1,加的是一个*p所指向类型的字节大小 *(p+1)
=
a[1]; //数组名是数组首元素地址 p
= a; return 0; }
小练习
编写函数,将两个整型变量的和,赋给第一个变量,差赋给第二个变量。
参考答案(一万个读者有一万个哈姆雷特,一万个程序员有一万种编码风格,答案仅供参考)
编写函数,将两个整型变量的和,赋给第一个变量,差赋给第二个变量。
void entrust(int * a,int * b)
{ int c = *a; *a =
*a + *b; *b = c - *b; } int main(int
argc, const char * argv[]) { int p =
5; int q =
2; entrust(&p, &q); return
0; }
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号