当前位置: 首页 > news >正文

淄博网站建设服务淮北网站建设求职简历

淄博网站建设服务,淮北网站建设求职简历,个性化网站建设费用,上海上市装修公司1.引入 学习指针的⽬的是使⽤指针解决问题&#xff0c;那什么问题&#xff0c;⾮指针不可呢&#xff1f; 例如&#xff1a;写⼀个函数&#xff0c;交换两个整型变量的值。 ⼀番思考后&#xff0c;我们可能写出这样的代码&#xff1a; #include <stdio.h> void Swap1(int…

1.引入

  学习指针的⽬的是使⽤指针解决问题,那什么问题,⾮指针不可呢?
  例如:写⼀个函数,交换两个整型变量的值。
 ⼀番思考后,我们可能写出这样的代码:
#include <stdio.h>
void Swap1(int x, int y)
{int tmp = x;x = y;y = tmp;
}
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);printf("交换前:a=%d b=%d\n", a, b);Swap1(a, b);printf("交换后:a=%d b=%d\n", a, b);return 0; }
当我们运⾏代码,我们发现其实没产⽣交换的效果,这是为什么呢? 调试⼀下,试试呢?
  我们发现在main函数内部,创建了a和b,a的地址是0x00cffdd0,b的地址是0x00cffdc4,在调⽤Swap1函数时,将a和b传递给了Swap1函数,在Swap1函数内部创建了形参x和y接收a和b的值,但是x的地址是0x00cffcec,y的地址是0x00cffcf0,x和y确实接收到了a和b的值,不过x的地址和a的地址不⼀样,y的地址和b的地址不⼀样,相当于x和y是独⽴的空间,那么在Swap1函数内部交换x和y的值,⾃然不会影响a和b,当Swap1函数调⽤结束后回到main函数,a和b的没法交换。Swap1函数在使⽤的时候,是把变量本⾝直接传递给了函数,这种调⽤函数的⽅式我们之前在函数的时候就知道了,这种叫传值调⽤。
  结论:实参传递给形参的时候,形参会单独创建⼀份临时空间来接收实参,对形参的修改不影响实参。所以Swap是失败的了。

2.具体应用

  我们现在要解决的就是当调⽤Swap函数的时候,Swap函数内部操作的就是main函数中的a和b,直接将a和b的值交换了。那么就可以使⽤指针了,在main函数中将a和b的地址传递给Swap函数,Swap函数⾥边通过地址间接的操作main函数中的a和b,并达到交换的效果就好了。
#include <stdio.h>
void Swap2(int*px, int*py)
{int tmp = 0;tmp = *px;*px = *py;*py = tmp;
}
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);printf("交换前:a=%d b=%d\n", a, b);Swap1(&a, &b);printf("交换后:a=%d b=%d\n", a, b);return 0; }
我们可以看到实现成Swap2的⽅式,顺利完成了任务,这⾥调⽤Swap2函数的时候是将变量的地址传递给了函数,这种函数调⽤⽅式叫:传址调⽤。
传址调⽤,可以让函数和主调函数之间建⽴真正的联系,在函数内部可以修改主调函数中的变量;所以未来函数中只是需要主调函数中的变量值来实现计算,就可以采⽤传值调⽤。如果函数内部要修改主调函数中的变量的值,就需要传址调⽤。

3.strlen的模拟实现

  库函数strlen的功能是求字符串⻓度,统计的是字符串中 \0 之前的字符的个数。

函数原型如下:

size_t strlen ( const char * str );
参数str接收⼀个字符串的起始地址,然后开始统计字符串中 \0 之前的字符个数,最终返回⻓度。 如果要模拟实现只要从起始地址开始向后逐个字符的遍历,只要不是 \0 字符,计数器就+1,这样直到 \0 就停⽌。
参考代码如下:
int my_strlen(const char * str)
{int count = 0;assert(str);while(*str){count++;str++;}return count;
}
int main()
{int len = my_strlen("abcdef");printf("%d\n", len);return 0; }

http://www.yayakq.cn/news/23715/

相关文章:

  • 合肥房产网东莞seo排名公司
  • shopify做全品类网站美化网站代码
  • 网站建设公司i网络运维工程师需要什么证
  • 网站页面安全监测建设方案wordpress 主题够买
  • 珠海模板网站建设网站建设还好做吗
  • 国外炫酷网站网站建设 义乌
  • 做网站工资多钱wordpress注册页面模板怎么修改
  • 云南安宁做网站的公司北京网站建设亿玛酷专注4
  • 线上推广的渠道有哪些江门seo外包公司
  • 属于网络营销的特点是wordpress 优化
  • 网站设计怎么做才好看优化外包哪里好
  • 一个服务器可以做两个网站吗网站管理系统源码
  • 佛山营销网站建设多少钱专门做儿童的店铺网站
  • 哪里有做网站的英文外链代发
  • 许昌网站建设大连优化网站课程
  • 网站后台密码在哪个文件致力于网站开发维护学什么专业
  • 网站图片修改网站自建设需要买什么
  • ps怎样做网站大图网站首页图片切换
  • 电子商务网站建设功能网站备案查询网站
  • 网站模板无忧香水网站建设规划书
  • 一起做英语网站做u盘的老外网站
  • 深圳网站建设 百度一下seo培训讲师招聘
  • vivo官网网站服务sem 优化价格
  • 做公众号可以看的网站网站报备查询
  • 成都网站建设scjsc888知名企业破产
  • 滨海做网站找哪家好wordpress外网ip访问
  • 兰州优化网站推广辽宁建设工程招标网站
  • 佛山网站建设十年乐云seo金融网站排名优化
  • 怎么自己创建一个网站手机域名解析后怎么建网站
  • 建设网站的多少钱云主机可以放几个网站