博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
19.04.16--指针笔记-参数传递
阅读量:6319 次
发布时间:2019-06-22

本文共 864 字,大约阅读时间需要 2 分钟。

指针和参数
1、形参改变不了实参的值:图1
 

 

图1
 
2、通过地址传递可以改变实参的值:图2
注意:在图1与图2  在定义函数参数中 a,b前 星号 * 的有无 说明传递的是 实参的地址与实参的值 
 
2、函数参数中如果有数组 都会转化为指针 sizeof(数据类型) 所以求出来的值不作为循环的值使用

 

打印结果
 

 

注意:数组作为函数参数可以退化为指针(图3)
         在传递数组时需要加上数组的个数

 

图3
3、两种方式求出字符串长度  (图4)
①利用函数strlen();
②通过while循环遍历字符串直至遇到字符串结果\0结束,遍历中定义一个整型变量i,进行记录循环次数,同时也是字符串长度;
 

 

图4
 
4、指针作为返回值 
①字符串数组  存放在栈区:图5

 

图5
②字符串常量  会在程序运行时  放在常量区   不能被修改 可以读取 程序结束时会被销毁:图6

 

图6
③保证指针地址对应的值是有内容的:图7

 

图7
 
5、strstr例子:
条件:①两个匹配的字符串,必须完全匹配,匹配个数 = 字符串长度
      ②如果匹配一个字符串,需要记录被匹配字符串地址
      ③如果匹配一半为成功  回到记录被匹配字符串地址+1
      ④如果匹配中的被匹配字符串的结束   匹配个数 不等于 字符串长度
 
6、指针和字符串
①*p改变字符串中的值
②字符串与指针在程序中打印的值:
③字符串常量 是一个常量的数组 可以读取字符和字符串  但是不能修改
④栈区
⑤常量区
7、指针小结
 
 
二级指针小结
注意:不是所有的二级之指针都能当作二维数组来操作
所有的二维数组都能当作二维指针来使用
 
8、字符串排序的三种实现方法:
循环优化
定义一个int类型 初始化为1;
在第二层循环的交换语句的开始 将定义的int类型的flag 赋值为零,开始内层循环结束,判断flag是否为零,如果为零直接return,
否则在外层循环再将flag赋值为1,再次进行内循环,直至执行flag判断的语句;
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/redyellowblue/p/10719856.html

你可能感兴趣的文章
浅谈Java的输入输出流
查看>>
CST 公共生成树
查看>>
windows Server 2003 IIS启用父路径
查看>>
shell脚本的执行方式及区别
查看>>
nginx实现对chunk请求支持
查看>>
我的友情链接
查看>>
中国铁建内网漫游沦陷多个重要部门泄漏大量信息(redis+ssh-keygen免认证登录案例)...
查看>>
Mongodb 添加删除分片与非分片表维护
查看>>
CentOS6.4之文本编辑器Vi/Vim
查看>>
我的友情链接
查看>>
1022.在线视频—IT售前营销讲座(三)售前情报、策划和资源协调
查看>>
VS2010 无法调试、断点 的解决方法
查看>>
背包问题: HDU1114Piggy-Bank
查看>>
常用的服务器命令
查看>>
linux系统安装后优化
查看>>
RHCE认证培训+考试七天实录(二)
查看>>
网络安全系列之五十二 组策略中的软件限制策略
查看>>
Google 镜像站搜集
查看>>
一个关于思科路由器ping的有趣现象
查看>>
《ActionScript3.0 游戏设计基础(第二版)》随书代码和附赠章节(共4章)
查看>>