引言:在C语言中。指针的地位是不言而喻的,要想非常好的掌握C语言,掌握指针是必须的,这也是C语言不同于其它语言的地方。

(一)指针的指针

样例:

      int i;
int *pi;/*把pi初始化为指向变量i,pi = &i*/
int **ppi;/*把ppi初始化为指向变量pi,ppi = &pi*/

初始化指针后。就能够使用它们了。

比如i = 'a'; *pi = 'a'; **ppi = 'a';具有同样的效果。

在一条简单的对i赋值的语句能够完毕的任务情况下,为什么还要使用更为复杂的涉及间接訪问的方法呢?这是由于简单赋值并不总是可行,比如链表的插入。

(二)高级声明

int f; /*声明一个整型变量*/
int *f; /*一个指向整型的指针*/
intf();/*把f声明为一个函数。它的返回值是一个整数*/
int *f(); /*f是一个函数。它的返回值类型是一个指向整型的指针*/
int (*f)(); /*使f成为一个函数指针,它所指向的函数返回一个整型值*/
int *(*f)(); /*f是一个函数指针,仅仅是所指向的函数的返回值是一个整型指针*/
int f[]; /*f是个整型数组*/
int *f[]; /*f是数组。它的元素类型是指向整型的指针*/
int (*f[])(); /*括号内的表达式*f[]首先进行求值。所以f是一个元素为某种类型的指针的数组。表达式
末尾的()是函数调用操作符,所以f肯定是一个数组。数组元素的类型是函数指针。
它所指向的函数的返回值是一个整型值*/
int *(*f[])(); /*f是一个指针数组,指针所指向的类型是返回值为整型指针的函数*/

最新文章

  1. RabbitMQ 简介
  2. C#~异步编程再续~大叔所理解的并行编程(Task&Parallel)
  3. 了解JavaScript
  4. 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
  5. FineUI小技巧(2)将表单内全部字段禁用、只读、设置无效标识
  6. C#(Visual Studio) AssemblyInfo
  7. Unity3D脚本中文系列教程(十七)
  8. JavaScript的变量提升
  9. 查询EBS在线用户SQL(R12)
  10. 从一般分布式设计看HDFS设计思想与架构
  11. MAMP 环境下为 php 添加 pcntl 扩展
  12. Java算法-------无序数组中的最长连续序列---------leetcode128
  13. SQL数据库的操作,表的操作
  14. jQuery根据元素值或元素下标来删除一个数组元素及数组对象方法列表
  15. js实现截取或查找字符串中的子字符串
  16. JS笔记—01
  17. Use Memory Layout from Target Dialog Scatter File
  18. Stream processing with Apache Flink and Minio
  19. SDC信息统计分析系统ETL工具的研究与实现[专业:计算机应用技术]
  20. RV ItemDecoration 分割线 简介 MD

热门文章

  1. mysql物理备份恢复 xtrabackup 初试
  2. Mysql InnoDB事务
  3. webpack & async await
  4. C#中的is和as的转型区别
  5. [AHOI2014&&JSOI2014][bzoj3876] 支线剧情 [上下界费用流]
  6. bzoj2553【beijing2011】禁忌
  7. bootstrap之常见组件应用1
  8. node.js express配置允许跨域
  9. Render 使用
  10. js,add script async? loaded ok.