zoukankan      html  css  js  c++  java
  • 空指针和 指向指针的指针

    空指针:

      在 C/C++中,可以用 “NULL” 关键字对任何类型的指针进行赋值。值为 NULL 的指针,被称为 空指针。

      空指针指向地址 0。一般来说,程序不需要,也不能在地址 0 处进行读写。

      如:int * pn = NULL; char * pc = NULL;

    指向指针的指针:

      如果一个指针里存放的是另一个指针的地址,则称这个指针为指针的指针。

       比如: int ** p;

      这样的写法是合法的,它定义了一个指针p,变量p 的类型是 int **“ *p ” 则表示一个类型为 int * 的指针变量。在这种情况下,我们说,p 是 “指针的指针” ,因为p 指向的是个类型为 int *的指针,既可以认为p 指向的地方存放着一个类型为 int * 的指针变量。 

    1 // 一般写法
    2 int a;
    3 int * pa = &a;
    4 int ** ppa = &pa;

      总结一般规律,如果定义:

      T **p;  // 此处T 可以是任何类型名

      那么 p 就被称为 “指针的指针” 。p 这个指针,其类型是 T** ,而表达式 “* p” 的类型是 T * ,“* p” 表示一个类型为 T * 的指针。

      同理,int ***p;   int ****p;int *****p;等,不论中间有多少个“*”,都是合法的定义。

      值得注意的是:不论 T 表示什么类型,sizeof(T* ) 的值都是 4。也就是说,所有指针变量,不论他是什么类型的,其占用的空间都是 4 个字节。

      我们还可以定义 指针数组,如:

      int * array[5]; 

      那么 array 数组里的每个元素都是一个类型为 int * 的指针。

    整理来源:程序设计导引及在线实践.pdf

  • 相关阅读:
    微分方程、动力系统与混沌导论 第1章 一阶方程[书摘]
    微分方程解耦
    指数输入时微分方程特解的求法
    例说信号与系统
    SVD分解的理解[转载]
    3D数学 ---- 矩阵和线性变换[转载]
    千里积于跬步——流,向量场,和微分方程[转载]
    微分方程——包络和奇解
    微分方程——基本概念和常微分方程的发展史
    sencha touch 入门学习资料大全
  • 原文地址:https://www.cnblogs.com/guoyujiang/p/12294493.html
Copyright © 2011-2022 走看看