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

    1.指针数组

    int *p1[5];
    

    上面是一个指针数组,我们可以从运算符的优先级和综合性进行分析:
    数组下标的优先级要比取值运算符的优先级高,所以先入为主,p1被定义为具有5个元素的数组,因为还有一个星号,所以它们应该是指向整型变量的指针。
    如下图所示:

    https://xxx.ilovefishc.com/forum/201606/21/011328bkm1bn666ok6vzuy.png

    指针数组是一个数组,每个数组元素存放一个指针变量。

    代码示例:

    #include <stdio.h>
    int main()
    {
              char *p[5] = {
                            "时间,不在于你拥有多少,而在于你怎样运用 --  艾克"
                            "just do it  --  nike"
                            "一切皆有可能  --  李宁"
                            "永不止步  --  安踏"
                            "one more thing...  --  苹果"
    };
           int i;
    
    
           for (i = 0 ; i < 5; i++)
           {
                      printf("%s
    ", p1[i]);
            }
    
    
              return 0;
    
    }
    
    

    2.数组指针

    int (*p2)[5];
    

    上面是一个数组指针,我们一样可以从运算符的优先级和综合性进行分析:
    因为圆括号和数组下标位于同一个优先级,所以就要看先来后到的问题了。由于它们的结合性都是从左到右,所以p2先被定义为一个指针变量。后面还紧跟着一个具有5个元素的数组,p2指向的就是它。由于指针变量的类型事实上就是它所指元素的类型,所以这个int就是定义数组元素的类型为整型。

    如下图所示:

    https://xxx.ilovefishc.com/forum/201606/21/011721ynsrn335zyzij4zl.png

    代码示例:

    #include <stdio.h>
    
    int mian()
    { 
              int temp[5] = {1, 2, 3, 4, 5};
              int (*p2)[5] = &temp;
              int i;
           
    
              for (i = 0; i < 5 ; i++)
              {
                         printf("%d
    ", *(*p2 + i);
              }
     
    
             return 0;
       
    }
    
  • 相关阅读:
    JSON和Object数组在js中的转换
    Raphael绘制箭头arrow
    Web后台框架开发
    数据库开发
    docker
    git
    linux
    正则表达式工具
    python模拟ls命令
    python3基础
  • 原文地址:https://www.cnblogs.com/xiao--liang/p/10403299.html
Copyright © 2011-2022 走看看