问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言函数怎么调用数组部分

发布网友 发布时间:2022-05-02 19:35

我来回答

1个回答

热心网友 时间:2022-06-26 10:42

一、数组可定义为全局变量,函数直接调用。

二、数组可定义为局部变量,再通过参数传递到函数中调用(实参传数组名,表示数组首地址,也可通过指针或数组名+数字来传递数组局部地址)。

三、main函数想要调用函数返回的数组可用static定义静态变量或malloc定义动态数组(字符串常量也可返回使用,但局部变量,在函数调用结束会被释放,不能作为返回地址使用)。

下面是演示代码:

#include <stdio.h>

#include <string.h>

#include <malloc.h>

char str1[]="我是全局变量数组";

char *fun0(char str2[]);

char *fun1();

char *fun2();

int main()

{

    char *str3=NULL,*str4=NULL,*str5=NULL;

    char str2[]="我是main函数的局部数组变量";

    str3=fun0(str2);

    printf("str3:%s,fun函数调用结束,我的地址依然可以使用\n",str3);

    str4=fun1();

    printf("str4:%s,fun函数调用结束,我的地址依然可以使用\n",str4);

    str5=fun2();

    printf("str5:%s,fun函数调用结束,函数结束不会自动释放\n",str5);

    free(str5);

    return 0;

}

char *fun0(char s[])

{

    static char str3[]="我是fun函数申明的静态数组变量";

    printf("str1:%s,fun函数可以直接调用\n",str1);

    printf("str2:%s,fun函数通过参数将我的地址传进来\n",s);

    return str3;

}

char *fun1()

{

    char *str4="我是fun1函数的字符串常量";

    return str4;

}

char *fun2()

{

    int len;

    char sTemp[]="这是一个临时数组,之后用于给mallc申请的地址传值,传递内容为:(我是fun函数通过mallic申请的数组)";

    char *str5=NULL;

    len=strlen(sTemp+63);

    str5=(char *)malloc(sizeof(char)*len+1);

    if(!str5)return NULL;

    strcpy(str5,sTemp+63);

    str5[len-2]=0;

    return str5;

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天秤男吃醋的八大表现 天秤座男生吃醋时的表现 人工授精之后注意什么 人授后需要卧床休息吗 ...经两个月没发工资了,我不想干了,老板不给钱怎么办? 新手玩《兰斯10》这款游戏的快速通关攻略是什么? 兰斯10怎么用食券快速刷SSR 兰斯10二周目7cp怎么达成 兰斯10大侵攻达成条件介绍 跳舞同手同脚叫什么来着 喷油嘴清洗机主要功能 c语言的数组怎么传递到函数里面 在C语言中,函数传参时怎样利用指针传递数组? c语言数组在函数中的传递 C语言怎么向自定义函数中传入一个数组,处理完再返回新的数组? C语言中怎么将数组作为函数传递?初学,求解 c语言函数怎么传数组 旋翼机的飞行原理是什么? 变桨距四旋翼飞行原理和固定桨四旋翼飞行原理一样吗,请详细说下变矩桨四旋翼飞行原理,谢谢!!! 旋翼机是如何转向的? 旋翼飞机的飞行原理是什么? 可以简单讲一下旋翼机的飞行原理吗 为什么电脑和手机上,不能同时登陆2个? 企业怎么申请 如何申请公司的方法 怎么申请企业?以公司名字可以申请多少个?和以公司名字办理几个手机号再用手机号注册有什么_百度问一问 企业怎么注册 企业申请流程 Unnamed enterprise可以注册吗 电脑怎么登录两个 怎样注册公司 企业怎么注册 平安少儿福交20年后可以分红吗? C语言怎样把函数的值赋给数组? c语言数组如何在函数中传递 不要指针传递 委托买入股票未成功什么时候退回那笔钱啊 怎样才能两个同时登录 C语言技巧:怎样把数组作为参数传递给函数 如何在电脑上登录多个 这种耳机怎么用来说话 耳机要怎么设置才能说话? 耳机怎么插才能说话 用啤酒洗头真的可以生发么,原理是啥啊? 啤酒洗头,可以生发吗? 用啤酒洗头真的能使头发长得快吗? 啤酒洗头发可以让头发长的快吗? 用啤酒洗头真的可以护发,使头发长得快吗 小天鹅洗衣机洗几分钟自己就停了,但还有声音是怎么回事? 小天鹅洗衣机洗完排一半水就停,脱不了水? 用啤酒洗头真的可以快速长发吗? 啤酒洗头真的头发长得快吗有用吗 小天鹅洗衣机还有几分钟就停了怎么回事