c++之数组指针作为形参,并返回数组

C++中无法直接返回数组,但可以通过返回数组指针来间接操作。在函数参数中,传递数组实际上传递的是其首地址。同时,为了安全起见,通常需要额外传入数组的长度以便正确处理数组元素。
摘要由CSDN通过智能技术生成

 

1.c++不能返回具体的数组,只能返回数组的首地址
2.c++形参传入数组指针时,需要传入数组的长度
 

#include <iostream>
using namespace std;
int* getSortedArray(int *array,int length);//函数声明,排序后返回数组
bool sortedOK(int *array,int length);//检查数组是否完成排序
int main(){
    int array[]={2,8,6,9,3};//声明并赋值    
    getSortedArray(array,5);//排序,从小到大排序    
    //循环打印出排好序的数组    
    for(int i=0;i<sizeof(array)/sizeof(array[0]);i++)    
    {     
       cout <<array[i] <<endl;    
    }    
    return 0;
}

int* getSortedArray(int *array,int length)
{    
    int length_array=sizeof(array)/sizeof(array[0]);    
    bool ok=false;        
    while(!ok)    
    {     
       for(int i=0;i<length-1;i++)        
       {       
            if(array[i]>array[i+1])            
            {           
                 int a=array[i];                
                 array[i]=array[i+1];                
                 array[i+1]=a;            
             }        
        }        
        ok=sortedOK(array,5);    
    }        
    return array;
}

bool sortedOK(int *array,int length)
{    
    for(int i=0;i<length-1;i++)    
    {    
        if(array[i]>array[i+1])        
        {            
            return false;        
        }    
    }    
    return true;
}

打印结果

2
3
6
8
9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值