c++-C++想用指针return一个数组但是调用的结果和想象一样只return了首位,求教

问题描述

C++想用指针return一个数组但是调用的结果和想象一样只return了首位,求教

大一狗求教
C++想用指针return一个数组但是调用的结果和想象一样只return了首位,求教如何才能实现调用的结果是返回的一个数组啊。。。

解决方案

发重了,已经找到答案了,楼上各位谢了→全局变量

解决方案二:

不需要返回,设计函数时形参用指针就行。例如:

 #include"stdio.h"

void fun(int b[], int n)
{
    for(int i=0;i<n;i++)
    {
        b[i]=i;
    }
}
void main()
{
    int i,m=10;
    int a[100];
    fun(a,m);
    for(i=0;i<m;i++)
    {
        printf("%d ",a[i]);
    }
}

解决方案三:

你的想法是不可能实现的,用指针返回数组,在函数形参里面数组会退化为指针,所以你返回的永远都是数组的首地址...也就说不可能是指针...

时间: 2024-11-17 03:20:10

c++-C++想用指针return一个数组但是调用的结果和想象一样只return了首位,求教的相关文章

JS可不可以return一个数组?

问题描述 JS可不可以return一个数组? 在最近的一个项目中,我发现将JS return 的一个数组赋值给一个数组会出错,如果返回的数组里只有一个元素的话就不会出错,如果有多个元素的话就会出错,也就是说JS不能返回一个数组吗? 解决方案 function abc(){return [1,2,3,4,5]}; arr=abc(); console.log(arr) 肯定可以啊..你代码写的有问题吧 解决方案二: 可以的,js返回的值可以是数组 解决方案三: js 中可以返回的数据形式都是可以自

数组指针-关于一个数组的指针,求解释呀

问题描述 关于一个数组的指针,求解释呀 // 使用指针从函数返回一个数组 // paf是一个函数,它返回一个指针,该指针指向一个包含20个int元素的数组 int (*paf())[20] { int (*pear)[20]; int i = 0; pear = (int (*)[20])malloc(20 * sizeof(int)); printf("Malloc memory, Address: "); PRINT_ADDRESS(pear); // 打印所分配内存的地址 if

求教:CT课程的成绩是采用记录数组的形式存放的,请设计这样一个数组,并写出求班级平均成绩的命令式程序

问题描述 求教:CT课程的成绩是采用记录数组的形式存放的,请设计这样一个数组,并写出求班级平均成绩的命令式程序 求教:CT课程的成绩是采用记录数组的形式存放的,请设计这样一个数组,并写出求班级平均成绩的命令式程序 解决方案 命令式编程语言就是一般的编程语言,比如c/basic等. 根据你的要求,无非就是遍历数组,然后求和,除以数量得到平均值.具体什么语言.比如C int sum = 0; for (int i = 0; i < count; i++) sum+= data[i]; float a

有一个关于整型指针二维数组的问题

问题描述 有一个关于整型指针二维数组的问题 int x[4][4]y[4][4]z=0o=0;//z表示的是当前矩阵中的非零数字的数量,z为16则说明数字排满了,本局输了 //o表示最大数字的值,本例设定的是1024typedef int row[4]; //row代表具有4个元素的整型数组row p=x *q=y;//P是整型指针数组,有4组,每组有4个元素.p[1]=x[1]=(x+1) 这是别人写的2048源码的一部分,想问一下,这里为什么要先定义一个有4个元素的整型数组,然后再用这个去定

我想用指针作为函数形参,实参为数组 实现数组元素反序存放。可是只能交换前五个

问题描述 我想用指针作为函数形参,实参为数组 实现数组元素反序存放.可是只能交换前五个 #include using namespace std; void invert(int A,int); int main() { int A[10],n; cout<<"Please input 10 number:"< for(n=0;n cin>>A[n]; invert(A,10); return 0; } void invert(int *A,int n)

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

c-定义一个指针数组,这个数组名也是字符常量么,但为什么可以被另外一个数组名赋值?

问题描述 定义一个指针数组,这个数组名也是字符常量么,但为什么可以被另外一个数组名赋值? 例如: int x[4][3] ={0}; int (* p)[3] ; //这里p是一个以指针为元素的数组的数组名吧... p = x ; //为什么可以执行这步操作 解决方案 如果是指针,就可以被赋值.int (*p)[3] 是定义一个指向数组的指针,所以能被改变初始值 . P 说白了,其实就是三个指针.而不是数组. 就像 int i[3] 中的 i[0],i[1],i[2]不一样,是可以被修改的. 如

用一个数组、头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算。

问题描述 用一个数组.头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算. 用一个数组.头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算. 解决方案 http://www.docin.com/p-524422606.html

可以用一个一级指针指向一个二维数组吗?

问题描述 可以用一个一级指针指向一个二维数组吗? 看到书上写的都是二级指针,如int *p[4]等等, 数组不是在内存中的存储是连续的吗, 为什么不用一级指针直接指向第一个元素呢? 解决方案 直接用一个指针,就可以完成指向数组的功能,无论数组是多少维.只是指向后,如果控制下标需要自己考虑.其实,数组名就可以认为是一个静态的指针. 解决方案二: 建议你读下这篇文章http://www.cnblogs.com/wanpengcoder/archive/2010/07/17/1779503.html