精华内容
下载资源
问答
  • c++如何从函数返回数组? C++ 从函数返回数组 C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。 如果您想要从函数返回一个一维数组,您必须声明一个...
  • vb.net函数返回数组

    千次阅读 2018-10-18 17:11:13
    今天写了一个程序需要函数返回数组,看了别的网友的程序发现有bug,特此记录一下   返回函数写法 Private Function Fun_Fp32ToByte(ByVal fp32 As Single) As Byte() Dim byt(3) As Byte byt = System....

    今天写了一个程序需要函数返回数组,看了别的网友的程序发现有bug,特此记录一下

     

    返回函数写法

    
        Private Function Fun_Fp32ToByte(ByVal fp32 As Single) As Byte()
            Dim byt(3) As Byte
            byt = System.BitConverter.GetBytes(fp32)
            Debug.WriteLine("Gao      " & byt(3).ToString("X2"))
            Debug.WriteLine("ZhongGao " & byt(2).ToString("X2"))
            Debug.WriteLine("ZhongDi  " & byt(1).ToString("X2"))
            Debug.WriteLine("Di       " & byt(0).ToString("X2"))
    
            Return byt
        End Function

    调用方法

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
    
            Dim tmp(3) As Byte
            tmp = Fun_Fp32ToByte(Fun_ByteToFp32(&HC2, &H54, &H80, &H0))
            For Each td As Byte In tmp
                Debug.WriteLine("数组返回  " & td.ToString("X2"))
            Next
    
    End Sub

    辅助函数

        '浮点数转换
        Private Function Fun_ByteToFp32(ByVal gao As Byte, ByVal zhonggao As Byte, ByVal zhongdi As Byte, ByVal di As Byte) As Single
            Dim byt(4) As Byte
            byt(3) = gao
            byt(2) = zhonggao
            byt(1) = zhongdi
            byt(0) = di
            Return System.BitConverter.ToSingle(byt, 0)
        End Function

    输出结果

    Gao           C2
    ZhongGao 54
    ZhongDi    80
    Di               00
    数组返回  00
    数组返回  80
    数组返回  54
    数组返回  C2
     

     

    展开全文
  • 在C中如何使函数返回数组收藏 Java语言的函数可以轻易的返回一个数组,而C/C++却不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。 在C/C++中,一般有两种方法来返回一个数组
  • C++中如何使函数返回数组

    万次阅读 2016-05-18 16:17:51
    C++中如何使函数返回数组?以前使用java返回数组这些类型都比较方便,用c++的时候突然发现c++不支持返回数组,我就找了下应该怎么实现这这种返回 在C++中,数组不是一种类型,因此不能被直接返回。一般有两种方法来...

    C++中如何使函数返回数组?以前使用java返回数组这些类型都比较方便,用c++的时候突然发现c++不支持返回数组,我就找了下应该怎么实现这这种返回
    在C++中,数组不是一种类型,因此不能被直接返回。一般有两种方法来返回一个数组。

    1. 返回一个指向数组的指针
     #include<iostream>
    using namespace std;
    
    int* Array()
    {  
     int *a;
     a=new int [10];
    
     for(int i=0;i<10;i++)
     {
      a[i]=i+1;
      cout<<a[i]<<" "; 
     }
     cout<<endl;
     return a;
    }
    
    void main()
    {
     int *b;
     b=Array();
    
     for(int i=0;i<10;i++)
      cout<<b[i]<<" ";
      cout<<endl;
    }
    
    1. 返回一个结构的形式。这种形式相对较安全,可以避免忘记释放指针而造成内存泄露,也可以避免访问悬挂指针造成的错误。但缺点是由于结构是先拷贝再返回,因此如果结构较大时,会影响效率和占用较大内存。
     #include<iostream>
    using namespace std;
    class tag
    {
        public:
     int a[10];
    }X;
    
    class tag Array()
    {
     for(int i=0;i<10;i++)
     {
      X.a[i]=i+1;
            cout<<X.a[i]<<" ";
     }
     cout<<endl;
     return X;
    }
    
    void main()
    {
     class tag Y=Array();
     for(int i=0;i<10;i++)
     {
         cout<<Y.a[i]<<" ";
     }
        cout<<endl;
    }
    
    
    展开全文
  • 6.4数组变量与函数 6.4.1向函数传递数组  向脚本函数传递数组变量。如果试图将数组变量作为单个参数传递,是无法正常工作的。操作实例如下: #!/bin/bash #数组当作单个参数传递是无法工作的 function testit ...

    6.4数组变量与函数

    6.4.1向函数传递数组

             向脚本函数传递数组变量。如果试图将数组变量作为单个参数传递,是无法正常工作的。操作实例如下:        

    #!/bin/bash
    #数组当作单个参数传递是无法工作的
    function testit {
       echo "The parameters are:$@"
       thisarray=$1
       echo "The received arrray is ${thisarray[*]}"
    }
    
    #创建数组并给数组赋值
    myarray=(1 2 3 4 5)
    #输出数组内容
    echo "The original array is:${myarray[*]}"
    #调用参数并传参
    testit $myarray

             如果试图将数组变量作为函数参数使用,那么函数只提取数组变量的第一个取值。要解决这个问题,必须将数组变量拆分为单个元素,然后使用这些元素的值作为函数参数。函数内部可以再将这些参数重组为新数组变量。      

    #!/bin/bash
    #函数使用数组变量
    function testit {
       local newarray
       newarray=(`echo "$@"`)
       echo "The new array value is :${newarray[*]}"
    }
    
    myarray=(1 2 3 4 5)
    echo "The original array is ${myarray[*]}"
    testit ${myarray[*]}

             该脚本使用变量$myarray存放所有数组值,并将它们都放在函数命令行。函数命令行随后根据命令行参数重建数组变量。这样,函数内部可以像其他数组一样使用这个数值。      

    #!/bin/bash
    #对数组内的元素进行累加
    function addarray {
        local sum=0
        local newarray
        newarray=(`echo "$@"`)
        for value in ${newarray[*]}
        do
    	sum=$[ $sum + $value ]
        done
        echo $sum
    }
    
    myarray=(1 2 3 4 5)
    echo "The original array is :${myarray[*]}"
    arg1=`echo ${myarray[*]}`
    result=`addarray $arg1`
    echo "The result is $result"

             函数addarray对数组数据递推求和。任意数目的值都可以放在数组变量myarray中,并且函数addarray将对其求和。

    6.4.2从函数返回数组

             从函数想shell脚本回传数组变量。函数使用echo语句以恰当顺序输出数组各元素的值,然后脚本必须将这些数据重组为新数组变量。          

    #!/bin/bash
    #从函数返回数组
    function arraydblr {
        local origarray
        local newarray
        local elements
        local i
        origarray=(`echo "$@"`)
        newarray=(`echo "$@"`)
        elements=$[ $# - 1 ]
        for (( i=0;i<=$elements;i++ ))
        {
    	newarray[$i]=$[ ${origarray[$i]} * 2 ]
        }
       
        echo ${newarray[*]}
    }
    
    myarray=(1 2 3 4 5)
    echo "The original array is:${myarray[*]}"
    arg1=`echo ${myarray[*]}`
    result=(`arraydblr $arg1`)
    echo "The new array is:${result[*]}"

              这个脚本用变量arg1将数组值传递给函数arraydblr。函数arraylr将该数组重组为新数组变量,并将后者复制后作为输出数组变量。然后,该函数对数组变量的元数据做递推,每个元素值双倍,将其存放到复制的函数数组变量中。之后,函数arraydblr使用echo语句输出数组变量的各元素值。脚本将函数arraydblr的输出按照数据重组为新数组变量。

    展开全文
  • c++ 函数返回数组

    千次阅读 2018-01-04 11:12:35
    C++中函数是不能直接返回一个数组的,但是数组其实就是指针,所以可以让函数返回指针来实现。 不能直接返回函数中定义的数组,会被释放掉 float* add(a[3],b[3]) { float sum[4]; sum[0]=a[0]+b[0]; sum[1]=

    以下转自:http://blog.csdn.net/lijiayu2015/article/details/52821562

    C++中函数是不能直接返回一个数组的,但是数组其实就是指针,所以可以让函数返回指针来实现。

    不能直接返回函数中定义的数组,会被释放掉

    float* add(a[3],b[3])
    {
    float sum[4];
    sum[0]=a[0]+b[0];
    sum[1]=a[1]+b[1];
    sum[2]=a[2]+b[2];
    return sum;
    }
    
    //main()中调用使用
    int main()
    {
        float A[3] = { 1, 1, 1};
        float B[3] = { 1, 2,3};
        float *M = add(A, B);
        cout << M[0] << " " << M[1] << "  "<<M[2]<<endl;
        cout << M[0] << " " << M[1] << "  " << M[2] << endl;
        system("pause");
        return 0;
    }
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    运行结果
    第一次输出的结果正确,第二次输出结果不对,因为指针函数返回的指针被释放了。

    正确方法1:函数内使用new动态分配内存

    float* add(float a[3], float b[3])
    {
        float* sum=new float[3];//替换
        sum[0] = a[0] + b[0];
        sum[1] = a[1] + b[1];
        sum[2] = a[2] + b[2];
        return sum;
    }
    
    int main()
    {
        float A[3] = { 1, 1, 1};
        float B[3] = { 1, 2,3};
        float *M = add(A, B);
        cout << M[0] << " " << M[1] << "  "<<M[2]<<endl;
        cout << M[0] << " " << M[1] << "  " << M[2] << endl;
        delete[] M;//增加
        system("pause");
        return 0;
    }
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    输出结果正确。

    方法2:在函数外定义数组,通过形参传入函数,在函数内修改数组

    void add(float a[3], float b[3],float sum[3])
    {
        sum[0] = a[0] + b[0];
        sum[1] = a[1] + b[1];
        sum[2] = a[2] + b[2];
    }
    
    int main()
    {
        float A[3] = { 1, 1, 1};
        float B[3] = { 1, 2,3};
        float M[3];
        add(A, B, M);
        cout << M[0] << " " << M[1] << "  "<<M[2]<<endl;
        cout << M[0] << " " << M[1] << "  " << M[2] << endl;
        system("pause");
        return 0;
    }
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    输出结果正确

    以上转自:http://blog.csdn.net/lijiayu2015/article/details/52821562


    踩了坑之后,正确用法:


    调用:



    finish!

    展开全文
  • C从函数返回数组

    万次阅读 多人点赞 2018-11-08 11:05:04
    C 语言不允许返回一个完整的数组作为函数的参数。但是,可以通过指定不带索引的数组名来返回一个指向数组的指针。如果您想要从函数返回一个一维数组,必须声明一个返回指针的函数,如下: int * myFunction() { } ...
  • C语言,函数返回数组

    千次阅读 2018-02-04 21:48:41
    C语言,函数能否输入或返回一个数组? 可以的,但大多数方式都是说将数组的首地址作参数输入,或是指针函数返回一个数组的首地址。而这种方式并非真正意义上的“输入”或“输出”。 参数是一个新的量被附了参考量...
  • function arraydblr { local origarray local newarray local elements local i origarray=($( echo " $@ ...向函数传递的参数是$arg1,我们知道...函数返回同理,返回的是单个的数值,接受的时候加上(),组成数组
  • 怎样让函数返回数组

    万次阅读 2016-10-15 10:23:59
    用动态内存new和形参的方法让C++中函数返回一个数组
  • 关于C语言函数返回一个数组c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意:1、该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放。可以是全局变量,...
  • c++函数返回数组

    千次阅读 2013-05-04 21:51:01
    不能返回局部数组,因为它是临时变量,暂存在栈区里面,函数调用结束,数组会被释放。 如果需要返回数组可以用如下3种方法: (1)调用之前先创建数组,将数组的地址也就是指针作为参数传递进函数。 int *GetData...
  • C语言从函数返回数组的方法

    千次阅读 2020-06-23 15:50:51
    C 语言不允许返回一个完整的数组作为函数的参数。但是,可以通过指定不带索引的数组名来返回一个指向数组的指针。 另外,C 不支持在函数返回局部变量的地址,除非定义局部变量为 static 变量。 示例: u8 *...
  • 关于C语言函数返回数组的问题

    万次阅读 2016-11-29 23:03:52
    关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意: 1、该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放。 可以是全局变量,...
  • 数组指针问题一直是C/C++语言初学者的头疼问题,这里图图和大家分享一下函数返回数组的问题。如果在函数里定义静态数组,那么函数结束时数组内存空间也就会被释放,这时候如果返回数组首地址的话,那么获得的指针将...
  • c++ 如何让函数返回数组

    千次阅读 2019-01-28 12:40:34
    函数体内部创建的变量都是局部变量,当函数运行结束的时候,都会抛弃,也就是说你只返回了一个temp指针,这个指针确实是你想要的,这没有问题,但是它指向的内容在函数结束也就是return的那一刻之后就已经物是人非了...
  • 因为数组不能被拷贝,所以函数不能返回数组。不过,函数可以返回数组的指针或引用。返回数组指针的方法有以下几种:  1、方法一:使用类型别名。如下  typedef int arrt[10]; //arrT是一个类型别名,它表示的类型...
  • C语言第4课——从函数返回数组

    千次阅读 2018-11-24 09:16:29
    C 语言不允许返回一个完整的数组作为函数的参数。但是,可以通过指定不带索引的数组名来返回一个指向数组的指针。 如果想要从函数返回一个一维数组,必须声明一个返回指针的函数,如下: int * myFunction() { . ...
  • 如果想要在函数中传递一个一维数组作为参数,有三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针 方式 1 形式参数是一个指针 void myFunction(int *...
  • 函数返回数组(指针和结构体)

    千次阅读 2016-08-08 21:46:07
    有些时候需要子函数将一个数组返回出来,通常是两种方法,一种是靠指针,另一种是结构体。 一、先来看依靠指针怎么做 例程1: 1 #include "stdio.h" 2 3 char *test(char *tmp) 4 { 5 return tmp; 6 } 7...
  • shell 函数 返回数组

    千次阅读 2014-05-22 19:54:09
    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/26/A3/wKiom1NscJjhtAnvAAFQgz8nQUg438.jpg" title="1.jpg" alt="wKiom1NscJjhtAnvAAFQgz8nQUg438.jpg" />
  • linux shell实现从函数返回数组

    千次阅读 2018-07-13 18:25:00
    #!/bin/bash function arraydb { //定义局部变量 local orginalarray local newarray local element local i orginalarray=($(echo''$@'')) newarray=($(echo''$@''))...element=$[ $# - 1 ] //数组个数-1 ...
  • C语言 函数返回数组和指针区别

    千次阅读 2017-09-14 10:42:32
    函数str1()和str2()返回乱码,这是因为函数运行时函数参数和函数里面的局部变量是存放在栈(stack)中,当函数结束返回时栈也被系统回收,所以返回数组或者指针所指向的地址数据已经被覆盖,为乱码;  注:更...
  • 结果保存在数组a中,fun函数返回数组a元素的个数。 请勿改动主函数main与其它函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。 代码如下: #include<stdio.h> #define N 100 int fun(int a...
  • 初衷是想使用js的match函数配合正则表达式来匹配正确的ip格式,出现问题 var reg = /^([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){2}([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0...
  • VB中让函数返回数组

    千次阅读 2009-04-06 13:51:00
    CDetailList类模块里定义了如下私有属性Private m_udtDetails() As NODE_DETAIL现在要为它定义相应的getPublic Property Get DetailList() As NODE_DETAIL()之后在其他模块把DetailList当数组用却编译通不过编译错误...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,023,409
精华内容 809,363
关键字:

函数如何返回数组