IOS开发入门iOS开发系列----C语言(指针及递归函数)
白羽 2019-05-21 来源 :网络 阅读 588 评论 0

摘要:本文将带你了解IOS开发入门iOS开发系列----C语言(指针及递归函数),希望本文对大家学IOS有所帮助。

    本文将带你了解IOS开发入门iOS开发系列----C语言(指针及递归函数),希望本文对大家学IOS有所帮助。


IOS开发入门iOS开发系列----C语言(指针及递归函数)


指针及递归函数概述
   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频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程