打印
[技术支持]

函数调用的指针

[复制链接]
1166|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zerorobert|  楼主 | 2023-12-23 13:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1、指针的定义  


定义一个指针char *p,通常我们都会采取刚才的方法,这句话意思是p是一个指向char类型变量的指针。当编译器看到这句话时,认为p包含了一个char类型变量的地址,这是我们菜鸟对指针通常的理解。恭喜,理解的没错!但还太肤浅哦,我们一起深入进去吧!


2、指针使用场合I---函数调用  


定义一个函数void ilovep(int num,char *who,double *years);当我们调用这个函数时,情况就发生了变化,调用函数实例如下;  


void ilovep(num,&who,&years);这样ilovep()的3个参数就顺利的传了进来。为什么要举这样的例子呢?因为很多的小小菜鸟 经常混淆两个概念哦!


(i)函数形参声明部分出现的*号是参数数据类型名的一部分,是指向... ...的指针,而在函数调用部分&符号


后面的变量就是变量本身,类型是普通的数据类型啦! 3、指针使用场合II---操作数组 程序中声明了以下两个语句,  


int szLove[18]; //定义了一个数组   


   int *p;   //定义一个指向int类型的指针


现在我们可以对数组和指针进行相应的操作了,


例如: p =szLove; 因为szLove= szLove[0],所以这里就有p=szLove[0]了,即p和szLove都指向数组的第一个元素;


p = p + 1;这样写也是可以的,她等效于p = a[1];


p++;这个语句等效于 p = szLove[2];前提是你已经执行了前面的程序。


使用特权

评论回复
沙发
tpgf| | 2024-1-18 16:26 | 只看该作者
是不是应该在任何时候都要检查指针指向的正确性呢

使用特权

评论回复
板凳
keaibukelian| | 2024-1-18 20:55 | 只看该作者
如何避免同时对一个地址操作造成的严重后果呢

使用特权

评论回复
地板
heimaojingzhang| | 2024-1-18 21:31 | 只看该作者
感觉针对特定的地址操作不是那么安全啊

使用特权

评论回复
5
guanjiaer| | 2024-1-18 22:07 | 只看该作者
这都是常规操作了  用的多了 自然就熟练了

使用特权

评论回复
6
观海| | 2024-1-18 22:45 | 只看该作者
单片机c语言支持引用这个用法吗

使用特权

评论回复
7
八层楼| | 2024-1-18 23:23 | 只看该作者
一级指针还可以接受 多级指针调用就有点晕了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

1566

帖子

0

粉丝