• C++指针相关


    https://www.runoob.com/cplusplus/cpp-pointers.html

    星号 * 是:1.用来声明指针

          2.来返回位于操作数所指定地址的变量的值

    指针是一个变量,其值为另一个变量的地址

    eg.  int    *ip;    //ip为一个指针

    使用指针时会频繁进行以下几个操作:定义一个指针变量、把变量地址赋值给指针、访问指针变量中可用地址的值

    指向数组的指针:

    double runoobAarray[50];

    runoobAarray 是一个指向 &runoobAarray[0] 的指针,即数组 runoobAarray 的第一个元素的地址。因此,下面的程序片段把 p 赋值为 runoobAarray 的第一个元素的地址:

    double *p;
    double runoobAarray[10];
    
    p = runoobAarray;

    使用数组名作为常量指针是合法的,反之亦然。因此,*(runoobAarray + 4) 是一种访问 runoobAarray[4] 数据的合法方式。

    一旦您把第一个元素的地址存储在 p 中,您就可以使用 *p、*(p+1)、*(p+2) 等来访问数组元素。

    P:

    double runoobAarray[10];

    char *names[MAX]
    意思一样?

     ptr 声明为一个数组,由 MAX 个整数指针组成。因此,ptr 中的每个元素,都是一个指向 int 值的指针。下面的实例用到了三个整数,它们将存储在一个指针数组中,如下所示

    #include <iostream>
     
    using namespace std;
    const int MAX = 3;
     
    int main ()
    {
       int  var[MAX] = {10, 100, 200};
       int *ptr[MAX];
     
       for (int i = 0; i < MAX; i++)
       {
          ptr[i] = &var[i]; // 赋值为整数的地址
       }
       for (int i = 0; i < MAX; i++)
       {
          cout << "Value of var[" << i << "] = ";
          cout << *ptr[i] << endl;
       }
       return 0;
    }
    

      当上面的代码被编译和执行时,它会产生下列结果:

    Value of var[0] = 10
    Value of var[1] = 100
    Value of var[2] = 200

    可以用一个指向字符的指针数组来存储一个字符串列表,如下:

    #include <iostream>
     
    using namespace std;
    const int MAX = 4;
     
    int main ()
    {
     const char *names[MAX] = {
                       "Zara Ali",
                       "Hina Ali",
                       "Nuha Ali",
                       "Sara Ali",
       };
     
       for (int i = 0; i < MAX; i++)
       {
          cout << "Value of names[" << i << "] = ";
          cout << names[i] << endl;
       }
       return 0;
    }
    

      当上面的代码被编译和执行时,它会产生下列结果:

    Value of names[0] = Zara Ali
    Value of names[1] = Hina Ali
    Value of names[2] = Nuha Ali
    Value of names[3] = Sara Ali
  • 相关阅读:
    iOS开发Xcode7真机调试教程
    tableView 局部刷新
    CocoaPods 安装
    Mac OS
    iOS
    NSFileManager
    Label Font 字体样式设置
    iOS项目之企业证书打包和发布
    React Native学习之自定义Navigator
    React Native学习之DeviceEventEmitter传值
  • 原文地址:https://www.cnblogs.com/rinroll/p/16426060.html
Copyright © 2020-2023  润新知