C语言如何在函数中修改数组,并且原数组不改变

比如,main函数中定义了一个inta[100]={1,2,3}然后写一个add函数,把a里面每一个值乘以2,然后全部加起来,返回这个和,但是原数组a里面所有值都没有变,... 比如,main函数中定义了一个int a[100]={1,2,3}
然后写一个add函数,把a里面每一个值乘以2,然后全部加起来,返回这个和,但是原数组a里面所有值都没有变,这应该怎么写呢
展开
 我来答
百度网友f4f79435d
推荐于2016-03-11 · TA获得超过235个赞
知道小有建树答主
回答量:258
采纳率:100%
帮助的人:128万
展开全部
#include <stdio.h>

int add(int *a)
{
    int i = 0;
    int sum = 0;
    for( i = 0; i < 100; i++)
    {
        sum += (*(a+i))*2;
    }
    return sum;    
}

int main(){
    int a[100]={1,2,3};
    //result
    printf("The add result is %d.\n",add(a));
    //print the array
    printf("{");
    for(int i = 0; i < 100; i++)
        printf("%d, ",a[i]);
    printf("}");
    return 0;
}

 

sum result is 12.

{1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }

Press ENTER or type command to continue

山崖上的飞浪
2018-12-08
知道答主
回答量:6
采纳率:0%
帮助的人:3051
展开全部
可以在子函数里型定义一个数组,用for循环赋值,改变新数组,不去改变原数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式