zoukankan      html  css  js  c++  java
  • 指针相关知识

    1.指针:内存地址

    指针变量:专门用一个变量来存放指针,这种变量成为指针变量。因此,一个指针变量的值就是某个内存单元的地址(或指针)

    “指针”是指地址,是常量,“指针变量”是指取值为地址的变量

    2.二级指针

    指针变量中主要存放目标变量的地址,这种指针称为一级指针。如果指针变量中存放的不是变量的地址,而是存放一级指针变量的地址,则这种指针称为二级指针。

    格式:

    【存储类型】  数据类型符    **变量名;

    例如:

    int a=5;

    int *p1;

    int **p2;

    p1=&a;

    p2=&p1;

    **p2=5;

    例子:利用二级指针来处理字符串

    #include <stdio.h>

    #define NULL 0

    void main()

    {

       char **p;

       char *name[]={"hello","good","world","bye"," "};

       p=name+1;

       printf("%x:%s  ",*p,*p);

       p+=2;

       while(**p!=NULL)

         printf("%s ",*p++);

    }

    运行结果:42003C:good  bye

    解释:第一个*p是输出p所指向的指针的地址(以十六进制形式%X输出),即字符串“good”的首地址。第二个*p是输出p的内容(即name[1])所指向的字符串(即"good")

    二级指针与指针数组的关系

    如:int **p;与*q[10];之间的关系

    指针数组名是二级指针常量;

    p=q;p+i是q[i]的地址;

    指针数组作形参时,int*q[]与int**q完全等价;但作为变量定义两者不同;

    系统只给p分配能保存一个指针值得内存区;而给q分配10块内存区,每块可保存一个指针值

    重剑无锋,大巧不工
  • 相关阅读:
    [POI2011]Lightning Conductor
    [NOI2009]诗人小G

    公告&留言板
    联合省选 2020 题解
    年末时的一些思维碎屑
    RE:ゼロから始める AFO 生活
    退役前的做题记录6.0
    2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解
    300iq Contest 1 简要题解
  • 原文地址:https://www.cnblogs.com/919czzl/p/4039145.html
Copyright © 2011-2022 走看看