zoukankan      html  css  js  c++  java
  • C++从函数返回指针

    C++ 允许您从函数返回指针。为了做到这点,必须声明一个返回指针的函数,如下所示:

    int * myFunction()
    {
    .
    .
    .
    }

    另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。

    现在,来看下面的函数,它会生成 10 个随机数,并使用表示指针的数组名(即第一个数组元素的地址)来返回它们,具体如下:

    #include <iostream>
    #include <ctime>
     
    using namespace std;
     
    // 要生成和返回随机数的函数
    int * getRandom( )
    {
      static int  r[10];
     
      // 设置种子
      srand( (unsigned)time( NULL ) );
      for (int i = 0; i < 10; ++i)
      {
        r[i] = rand();
        cout << r[i] << endl;
      }
     
      return r;
    }
     
    // 要调用上面定义函数的主函数
    int main ()
    {
       // 一个指向整数的指针
       int *p;
     
       p = getRandom();
       for ( int i = 0; i < 10; i++ )
       {
           cout << "*(p + " << i << ") : ";
           cout << *(p + i) << endl;
       }
     
       return 0;
    }

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

    624723190
    1468735695
    807113585
    976495677
    613357504
    1377296355
    1530315259
    1778906708
    1820354158
    667126415
    *(p + 0) : 624723190
    *(p + 1) : 1468735695
    *(p + 2) : 807113585
    *(p + 3) : 976495677
    *(p + 4) : 613357504
    *(p + 5) : 1377296355
    *(p + 6) : 1530315259
    *(p + 7) : 1778906708
    *(p + 8) : 1820354158
    *(p + 9) : 667126415

     var 是一个指向数组开头的常量,不能作为左值。由于一个数组名对应一个指针常量,只要不改变数组的值,仍然可以用指针形式的表达式。

     
  • 相关阅读:
    上一篇、下一篇之实现思路
    sql优化
    简易的文件上传 tp5
    phpqrcode生成二维码
    php 发送邮件(2)qq邮箱开通
    php 发送邮件(1)代码逻辑
    SELECT list is not in GROUP BY clause and contains nonaggregated
    TP5 未定义变量:XXX
    CentOS 7下载
    FFT算法实现——基于GPU的基2快速傅里叶变换
  • 原文地址:https://www.cnblogs.com/lijinji/p/5874842.html
Copyright © 2011-2022 走看看