C语言中函数中传入一个数组,并且返回一个数组

代码如下请大家帮着改正一下,我是学java的,C早就忘了~
#include<stdio.h>
void main (){
int a[8]={0,1,0,1,1,0,1,0};
int b[8] =arry(a[8]) ;
for (int i = 0;i<8;i++){
printf ("%d" , a[i]);
}
}
int arry ( int a[8]){
for (int i = 0;i<8;i++){
if (a[i]==0){
a[i]=1;
}
else {
a[i]=0;
}
}
return a[8];
}

第1个回答  推荐于2016-03-19
#include<stdio.h>

int *arry ( int a[]);

int main ()
{
int a[]={0,1,0,1,1,0,1,0};
int *b =arry(a) ;
        int i;
for (i = 0;i<8;i++){
printf ("%d " , a[i]);
}
        return 0;
}

int *arry ( int a[])
{
        int i;
for (i = 0;i<8;i++){
if (a[i]==0){
a[i]=1;
}
else {
a[i]=0;
}
}
return a;
}

追问

这的int *b =arry(a) ; b还是数组吗?我要是想把b遍历出来呢?

追答

b 是 int 指针,指向数组 a 。

想把b遍历出来是什么意思?

追问

我把数组a传入函数arry通过函数的计算我想得到函数返回的那个数组

追答

那就这样:

#include<stdio.h>
 
int *arry ( int a[], int b[]);
 
int main ()
{
    int a[]={0,1,0,1,1,0,1,0};
    int b[8];
    int i;
arry(a, b) ;
    for (i = 0;i<8;i++) printf ("%d " , a[i]); puts("");
    for (i = 0;i<8;i++) printf ("%d " , b[i]); puts("");
    return 0;
}
 
int *arry (int a[], int b[])
{
    int i;
    for (i = 0;i<8;i++){
        if (a[i]==0){
            b[i]=1;
        }
        else {
            b[i]=0;
        }
    }
    return b;
}

本回答被提问者采纳

C语言中函数中传入一个数组,并且返回一个数组
include<stdio.h>int *arry ( int a[]);int main (){int a[]={0,1,0,1,1,0,1,0};int *b =arry(a) ; int i;for (i = 0;i<8;i++){printf ("%d " , a[i]);} return 0;}int *arry ( int a[]){ int i;for (i = 0;i<8;i++){if (a[i]==0...

C语言怎么向自定义函数中传入一个数组,处理完再返回新的数组?
看你的代码。你问题并不在数组传入。你函数mymd5接收password数组,mymd5的password数组变量和外部函数的password地址相同,所以改变其中外部函数的数组也改变。但你mymd5返回的数组decrypt,是局部变量,当mymd5调用结束,这个数组的内存空间就释放了。你接收了也是NULL。所以要用malloc或calloc申请动态内存。这...

c语言中怎样返回一个数组?
在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。在大多数情况下,一维数组和一维指针是可以通用的。比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。 代码可以写成如下形式:int *int_array_create(int n)\/\/...

C语言中如何从函数中返回一个数组
不能返回数组,可以反回数组的首地址,也就是返回指针 至于数组的大小可以设置一个输出型变量指针,在调用函数的时候传到函数里,做一下记录.

C语言里返回一个数组的函数该怎么样写
C语音没有直接返回一个数组的说法,要得到一个数组的返回值,一般做法有几点:传入一个指向数组指针变量,在函数内部对指针地址内的值进行修改 函数内部申请动态内存,将数据保存到这块内存后返回该动态内存的指针,最后需要手动释放这块内存 使用静态变量(这个方法不建议使用,静态、全局变量很容易导致多线程...

C语言函数中返回数组
正确的程序:include<stdio.h> main(){ int b[3];pop(b,3);} void pop(int a[],int n)\/\/该方法传入两个参数,第一个是传入指向数组的地址,第二个参数是传入数组的长度,不需写返回语句return,只需通过指向数组的地址的传入就可以直接将数组b[]的值改变 { int i;for(i=0;i<n;i++...

怎么使C语言的函数返回值为一个数组
return szText;} void Caller() \/\/ 这个函数调用SubFunction { TRACE("%s\\n", SubFunction);} \/\/ 方法2,用指针传递 void SubFunction(char *pText1, char *pText2){ \/\/ 对pText1, pText2运算 strcpy(pText1, "love");strcpy(pText2, "you");return;} void Caller() \/\/ 这个函数...

C语言中,return语句怎么样返回一个数组?
由于C\/C++是允许返回结构体的,可以定义一个结构体模板,把数组作为成员安排在其中,函数中临时声明结构体变量,操作其中的数组;完毕后返回结构体变量,在主调函数中用同类型的结构体变量接收就可间接实现“返回一个数组”。举例代码如下:include "stdio.h"struct A{int m[30];\/\/把数组m安排在结构...

c语言中函数能返回一个数组吗
不能直接返回一个数组,但是可以用其他方式实现类似功能。方法1:利用全局变量 分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值...

在C语言中如何使函数返回数组
在C\/C++中,一般有两种方法来返回一个数组。第一种方法:返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组例子如下:#include#includeint (*retArray())[10]{int (*a)[10];int i=0;\/*动态开辟空间*\/a=calloc(10,sizeof(...

相似回答