指针
来源:互联网 发布:苹果app淘宝充值退款 编辑:程序博客网 时间:2024/05/18 01:07
2010-08-27先从语法层面说起吧。
1.()和[]都是后置算符,具有同样的高优先级
2.语言的设计者认为相似的语法结构就应该有相似的使用方式:
在声明时:
int array[常量表达式_元素个数];//声明数组
int function(形参表列);//声明函数
int (*pa)[常量表达式_元素个数]//声明指向数组的指针
int (*pf)(形参表列);//声明指向函数的指针
在使用时:
pa=&array; //指向具体的数组
pf=&function; //指向具体的函数
(*pa)[表达式_下标]; //间接引用数组元素
(*pf)(实参表列); //间接调用函数
===============================
上述两两对比,可以发现语法相似原则。
3.但是数组元素的指针间接引用还有另一种形式:
int *pe; //声明指向数组元素的指针
int (*pf)(形参表列);//声明指向函数的指针
pe=array; //指向数组的首元素
pf=function; //指向函数的入口地址_首址
pe[表达式_下标]; //引用数组元素
pf(实参表列); //调用函数
这里运用了一个语法知识,数组名表示数组首址、函数名表示函数首址----它们都是指针常量
=========================================
显然相似并不是相同,我们知道array与 &array不同,前者是首元素地址、后者是数组地址;
但是,function与&function却没有区别,两者都是函数首址!
4.结果是对函数首址及其间接引用而言
function, &function, &&function, ....都是一样的;
pf() ,(*pf)(), (**pf)(), .....都是一样的。当然除了前两对,后边的表达形式没有实际意义了。
***********************
function与 &function等价
pf()与(*pf)()等价
***********************
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- rtti的typeid与danamic_cast用法
- 一点工作经验
- www.qnongchang.com QQ农场外挂站。。
- 今天新注册了个域名:www.wg2345.com
- 详解如何实现一个基本的Android界面--讲的很好
- 指针
- Winform 开发 - 分页控件
- sql锁表问题
- Winform开发系列 - 子窗体刷新父窗体
- sql锁详解
- public protected private
- Custom Synthesis
- 面试常考的常用数据结构与算法
- ArcGIS客户端开发学习笔记(一)——AJAX机制