Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从函数C+返回数组+;_C++_Arrays_Function - Fatal编程技术网

C++ 从函数C+返回数组+;

C++ 从函数C+返回数组+;,c++,arrays,function,C++,Arrays,Function,鉴于此功能: int * myFunction(){ static int result[3]; result[0] = 1; result[1] = 2; result[2] = 3; return result; } 如何在main方法中将return[1]的值分配给变量 试试下面的方法 int main() { int x = myFunction()[1]; //... 或

鉴于此功能:

 int * myFunction(){

        static int result[3]; 
        result[0] = 1;
        result[1] = 2;
        result[2] = 3;

        return result;

    }
如何在main方法中将return[1]的值分配给变量

试试下面的方法

int main()
{
   int x = myFunction()[1];

   //...

至于你问题标题中的问题,比如你可以写

#include <iostream>

int ( &myFunction() )[3]
{
        static int result[3] = { 1, 2, 3 }; 
        //...
        return result;
}

int main( void )
{
    decltype( auto ) a = myFunction();

    std::cout << sizeof( a ) << std::endl;

    for ( int x : a ) std::cout << x << ' ';
    std::cout << std::endl;
}    
如果编译器不支持C++ 2014,则声明< /p>
    decltype( auto ) a = myFunction();
可以代替

    int ( &a )[3] = myFunction();
另一种方法是使用
std::array
而不是数组。比如说

#include <iostream>
#include <array>

std::array<int, 3> myFunction()
{
        static std::array<int, 3> result = { { 1, 2, 3 } }; 
        //...

        return result;
}

int main( void )
{
    auto a = myFunction();

    std::cout << sizeof( a ) << std::endl;

    for ( int x : a ) std::cout << x << ' ';
    std::cout << std::endl;
}    
#包括
#包括
std::数组myFunction()
{
静态std::array result={{1,2,3};
//...
返回结果;
}
内部主(空)
{
自动a=myFunction();
std::cout尝试以下方法

int main()
{
   int x = myFunction()[1];

   //...

至于你问题标题中的问题,比如你可以写

#include <iostream>

int ( &myFunction() )[3]
{
        static int result[3] = { 1, 2, 3 }; 
        //...
        return result;
}

int main( void )
{
    decltype( auto ) a = myFunction();

    std::cout << sizeof( a ) << std::endl;

    for ( int x : a ) std::cout << x << ' ';
    std::cout << std::endl;
}    
如果编译器不支持C++ 2014,则声明< /p>
    decltype( auto ) a = myFunction();
可以代替

    int ( &a )[3] = myFunction();
另一种方法是使用
std::array
而不是数组

#include <iostream>
#include <array>

std::array<int, 3> myFunction()
{
        static std::array<int, 3> result = { { 1, 2, 3 } }; 
        //...

        return result;
}

int main( void )
{
    auto a = myFunction();

    std::cout << sizeof( a ) << std::endl;

    for ( int x : a ) std::cout << x << ' ';
    std::cout << std::endl;
}    
#包括
#包括
std::数组myFunction()
{
静态std::array result={{1,2,3};
//...
返回结果;
}
内部主(空)
{
自动a=myFunction();

我希望如此。@gabrielvilella我希望如此。@gabrielvilella我希望如此。)