Using C ++ pointers and arrays implement a function return multiple values
demo1
#include <iostream> using namespace std; int* test(int,int,int); int main() { int * result =test(1,2,3); cout<<result[0]<<endl<<result[1]<<endl<<result[2]<<endl; getchar(); return 0; } int * test(int a,int b,int c) { int* presult =new int[3]; presult[0] =a; presult[1] =b; presult[2] = c; return presult; }
Export
1 2 3
C ++ and the pointer function returns a structure to achieve a plurality of values
demo2
#include <iostream> using namespace std; struct result { int first; double second; }; result test(int a,double b); int main() { result returnvalue =test(1,2.1234); cout<<returnvalue.first <<endl<<returnvalue.second<<endl; getchar(); return 0; } result test(int a,double b) { struct result ret; ret.first = A; ret.second = b; Return the right; }
Export
1 2.1234
Demo3
C ++ structure used as the return value
#include <stdio.h> typedef struct { int a; int b; }Stu; Stu getStu(int x, int y) { Stu result; result.a = x; result.b = y; return result; } int main() { int a = 2, b = 3; Stu test = getStu(a, b); printf("%d %d\n", test.a, test.b); return 0; }
Export
2 3
demo4
C ++ pointer to use as the return value structure
#include <stdio.h> #include <stdlib.h> typedef struct { int a; int b; }Stu; Stu* getStu(int x, int y) { Stu* pStu = (Stu*)malloc(sizeof(Stu)); pStu->a = x; pStu->b = y; return pStu; } int main() { int x = 2, y = 3; Stu *pStu = getStu(x, y); printf("%d %d\n", pStu->a, pStu->b); free(pStu); return 0; }
Export
2 3
reference:
https://blog.csdn.net/chaipp0607/article/details/64124704/
https://blog.csdn.net/dfq12345/article/details/73924580