zoukankan      html  css  js  c++  java
  • 【C语言天天练(十一)】深入理解指针

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


  • 相关阅读:
    使用gzip优化web应用(filter实现)
    在Spring、Hibernate中使用Ehcache缓存(2)
    Ehcache 整合Spring 使用页面、对象缓存(1)
    ehcache-----在spring和hibernate下管理ehcache和query cache
    使用Spring MVC构建REST风格WEB应用
    开涛spring3(12.4)
    开涛spring3(12.3)
    LLE局部线性嵌入算法
    图像固定条纹干扰
    多尺度字典学习超分辨率——相关中文文献
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7231351.html
Copyright © 2011-2022 走看看