C++指针知识总结.

C++ 指针详解
本文详细介绍了 C++ 中的普通指针和函数指针,包括它们的使用方法、运算规则以及如何进行赋值。文章还探讨了指针运算在不同数据类型上的表现,并解释了函数指针的声明形式及其特殊赋值方式。

普通指针函数指针,C++ C都支持这2种形式的指针类型,可以对普通指针进行+ -的运算,但是

指针运算只适用于[]形式,而并非一般形式的指针,而且+ -也同样可以应用在函数指针[]上

 普通指针函数指针的赋值形式都是相同的使用 = &的组合形式来进行赋值,指针运算也同样适用于

 class struct,等自定义的数据类型,进行指针运算时,每进行 +1 或者 -1 这种类型的+ -运算都是使

 用该类型所在系统的占用的字节容量来进行增加,如int所占用的是4字节,所以每次对int指针进行 +1

 算时,它指向的[]都会移动到该[]的下1个元素,如果是double就会增加8字节,如此类推,如果是自定

 义类型则根据该类型中所有域和函数所占用的字节大小所计算.函数指针的声明形式与普通指针有1些区别,

 语法总结有以下2种返回值type (* 函数指针名称 )() 该形式是最普通的形式,返回值type (* (* 函数指

 针名称 )( 参数类型 ) )() 该形式是带参数的函数指针的声明形式,返回值type (* (* 函数指针名称 )

 ( 参数类型 ) )()[] &返回值type (* 函数指针名称 )()[] 2种形式为不带参数的函数指针[]

 参数的函数指针[]的声明形式.判断函数指针声明的基础方式是一种 - - 的判断形式从函数指

 针的声明的中间开始(函数指针名称) - - 观察周围的修饰符和运算符. (*cp)++, ++*++cp,

 ++*cp++, *cp++, ++*cp等指针运算都可以依靠上面2种方式来判断,像*cp++这种简单的指针运算完全可以

 依靠运算符的优先级就能够明白,像++*++cp, ++*cp, 这类函数指针运算也可以同样依靠优先级和运算符的

 顺序来得到的结果,如*cp++可以通过++运算符的优先级高于*运算符优先级从而理解是先进行指针的运算之

 后在提取运算后指针指向的内容,++*++cp可以通过运算符使用的顺序来理解,如先执行cp指针的++运算

 之后再提取运算后指针所指向的内容之后在进行1++运算在判断指针声明时的第二点是需要根据运算符优

 先级来判断,指针运算时也是如此,指正声明的基础比较固定,但是可以根据各种不同的运算符来组合成

 复杂的声明方式,对其应该根据 - - 运算符的优先级就可以准确的理解复杂的声明.指针函数

 还有一种特殊的赋值方式,该方式是使用函数返回值来赋值,比如 C++ 中的 set_unexpected &

 set_terminate 类似的函数的返回值是1个函数指针,所以也可以像使用普通的利用函数返回值来赋值的方

 式来给函数指针赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值