[技术支持] 函数调用的指针

[复制链接]
1500|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 | 显示全部楼层
感觉针对特定的地址操作不是那么安全啊
guanjiaer 发表于 2024-1-18 22:07 | 显示全部楼层
这都是常规操作了  用的多了 自然就熟练了
观海 发表于 2024-1-18 22:45 | 显示全部楼层
单片机c语言支持引用这个用法吗
八层楼 发表于 2024-1-18 23:23 | 显示全部楼层
一级指针还可以接受 多级指针调用就有点晕了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

1935

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部