码迷,mamicode.com
首页 > 编程语言 > 详细

【C语言天天练(十一)】深入理解指针

时间:2014-06-18 07:27:00      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:指针

引言:在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是一个指针数组,指针所指向的类型是返回值为整型指针的函数*/


【C语言天天练(十一)】深入理解指针,布布扣,bubuko.com

【C语言天天练(十一)】深入理解指针

标签:指针

原文地址:http://blog.csdn.net/to_be_it_1/article/details/31798053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!