当前位置:网站首页>一些易混的指针【总结向】
一些易混的指针【总结向】
2022-07-20 16:07:00 【孤独时代的c0re】
目录
哎,指针的只是又忘了发篇博客重新整理一下吧!
一.void指针
1.void 指针——“通用指针”可以指向任意类型,任意类型的指针都可以赋值给void指针。
比如int *pi,和int *ps 都可以赋值给void *pv
2.将void指针转换为其他类型要加强制类型转换(一些系统不加也可以)
3.不能对void指针直接进行进行解引用,如果要对void指针进行解引用一定要进行强制类型转换。
二.NULL指针
1.如果指针不知道指向哪将他指向NULL
如:int *p2=NULL;
2.如果不指向NULL那他就是一个野指针,不会报错,会指向一个随机.
所以最好指向NULL。
三.参数与指针
1.如果一个函数的参数改成使用指针后函数就要传入数据的地址
2.参数是指针:函数中值的改变main函数的值也会发生改变
参数是普通的变量:函数中值的改变main函数的值不会发生改变
(传值和传指的区别,传指更像是哆啦a梦的任意门可以跨函数引用)
3.函数参数可以用指针来传递数组
如void core (int a[])可以用void core (int *p)来代替,相当于传送数组的首地址
四.可变参数
头文件:#include <stdarg.h>
会用到的:
1.va_list (+参数列表名)定义一个参数列表。
2.va_start(参数列表名,第一个参数名)初始化
3.va_arg(参数列表名,参数类型(如int ,double))访问参数
4.va_end(结束访问参数列表)
函数参数的定义:int sum (int n, …);
参数的使用 a=sum(1,2,3,4);
五.指针函数与函数指针
一.指针函数(是一个函数)
定义 :int(类型) *core(函数名)(int a(定义参数))
返回值:为指针变量。
不要返回局部变量的指针!!
二.函数指针(是一个指针变量)
1.定义:int(类型)( *core(函数名))(int (参数类型))多了一对括号
2.函数名相当于函数的地址!!
所以如果我们定义一个函数为int sum (int a);
我们在主函数中定义一个函数指针int (*core)(int);
我们便可以用core=sum;然后用sum(参数);或者(*core)(参数)来完成一系列的操作!!
3.函数指针作为参数:
4. 函数指针作为返回值:
一定要仔细区分!!!是一个括号括住了函数名和返回的参数。
以上图片均来自小甲鱼
您的点赞收藏关注是我的最大动力:)
十年饮冰,难凉热血
边栏推荐
猜你喜欢
How is agile Bi different from traditional Bi?
Don't know a little statistics, "Star Wars" for nothing
MDClub 轻量级网论坛源码
【微信小程序】 XXXXX不在以下 Socket 合法域名列表中,请参考文档
对于IT互联网行业来说,家觉得学历重要还是能力?
机器学习—支持向量机理论详细推导(含例题讲解)(一)
Force deduction ----- how many numbers are smaller than the current number
用户体验 | 深耕用户体验筑造银行竞争的护城河
机器学习—支持向量机理论详细推导(含例题讲解)(三)
[bug solution] warning: grad and param do not obey the gradient layout contract This is not an error, but..
随机推荐
BigDecimal
hyperledger fabric1.0整体架构与记账逻辑架构的分析
Interpret the transfer() function in numpy in detail (with examples to help understand)
1.8寸TFT LCD128X160 ST7735S SPI串口屏驱动示例
Linked list (V) -- delete the penultimate node of the linked list
Using ODBC to consume SAP ABAP CDs view in Excel
MFC关闭预编译头文件后错误解决
redis 5种数据结构的使方法
K3s部署rancher
String类的常见方法的使用案例
js 平滑滚动到顶部
2022牛客暑假多校第一场ADJI
User experience | deeply cultivate user experience and build a moat for bank competition
使用系统自带SQLite
【蓝桥杯基础训练】十六进制转八进制
在Win Server 2012 R2 下安装 卡巴斯基2018
Shell echo命令
MDClub 轻量级网论坛源码
实体服务是一种反模式
直播预告 | 《开源安全治理模型和工具》线上研讨会