zoukankan      html  css  js  c++  java
  • 指针和数组的关系

    指针和数组的关系

    1.一维数组

        Int  a[5]={1.2.3.4.5}

    1) P=&a[0]p=a等价)

                          C语言中数组名就是该数组的首地址

    2)printf("%d",a[1]);

           printf("%d",*(a+1)); 当我们以前使用a[1]的时候,

                             事实上计算机内部自动将其转换为*(a+1)

       3 int a=[5];

           int i*p=a;

    for(i=0;i<5;i++p++){

    scanf("%d",p);

    }

    for(i=0;i<5;i++p++){

    Printf("%d",*p);

    注释里的内容不能够删除否则指针变量p就会指超出到a数组

    4)上面程序p++不能换成a++

          (因为p是指针变量。本身的值是可以变化的,

            a虽然也是地址。But他是一个常量不能对一个常量自减或者自加)

    2.二维数组

    在二维数组中第一个下标代表行地址

                    第二个下标代表列地址

      Egint a[2][3]={1,2,3,4,5,6};

        a[0]代表第一行的首地址

        a[1]代表第二行的首地址

        printf("%d",*(a[0]+2));

    元素

    行地址

    列地址

    a[1][2]

    a[1]

    a[1]+2

    *(a[1]+2)

    *a+1

    **a+1+2

    *(*(a+1)+2)

    3.字符串指针

          C语言中,有2种方式可以访问字符串1)通过字符数组访问2)指针访问

    4.指针数组

          1)什么是指针数组:一个数组中所有的数据类型都是指针类型那么这就是指针数组   

          2)指针数组最大的好处是用来处理多字符串

           因为我们的字符串本身就是用字符数组来储存的,如果涉及到多条字符串,就必须

           用到二维字符数组。

       定义一个指针数组

      Char *p[]//这里我们定义一个指针数组;

         Egchar *p[3]={

              "movie"

               "movie1"

                "movie2"}

    m

    o

    v

    i

    e

    m

    o

    v

    i

    e

    1

    5.void指针类型和NULL类型

      定义指针以后必须进行初始化,不然很危险,因为它不知道该指向哪

      如果不知道指到哪那就让它为空(NULL

    Eg:    int  *i;

            I=NULL

    void指针类型

    可以指向任何类型的c数据,也就是说可以用任何类型的指针变量给void类型赋值,但是当void类型指针要转成其他类型的时候,必须使用强制转换

    Eg:  int i=10;

    int *p,*m;

    void *q;

    p=&i;

    q=p;

    m=(int*)q;

    printf("%d",*m);

    6.多级指针(又叫指针的指针)

    int i=10;

    int *p=&i;

    int **q=&p;

    int ***r=&q;

    printf("%d ",***r);//输出i的值

    printf("%d ",**r);//输出p的值

    printf("%d ",*r);//输出q的值 

  • 相关阅读:
    java环境变量配置
    线性表基本操作(没实现)
    请求路径问题(视频学习)
    SpringMVC_关于<url-pattern>
    SpringMVC_第一个程序
    Spring与Web
    Spring与MyBatis整合上_Mapper动态代理方式
    Spring_Spring与DAO_Spring的事务管理
    Spring_Spring与DAO_Spring的Jdbc模板
    Spring_Spring与AOP_AspectJ基于XML的实现
  • 原文地址:https://www.cnblogs.com/cp168168/p/6002311.html
Copyright © 2011-2022 走看看