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我希望如此。)