夜雨&(* 2021-12-12 10:57 采纳率: 88.9%
浏览 6
已结题

求解,还不太清楚数组作为函数参数

求解,array_input(a, n)传递的是数组a,那这个参数a不应该就是array_input()的局部变量吗?为什么参数a存放的值还可以存放到数组a里面?

#include<stdio.h>
#define NUM 6
void array_input(int a[], int n);
int square_sum(int a[], int n);
int main()
{
    int a[NUM], n = NUM;
    printf("请输入整型数组的%d个元素:\n", NUM);
    array_input(a, n);
    printf("数组a的各元素平方和:%d", square_sum(a, n));
    return 0;
}
void array_input(int a[], int n)
{
    int i;
    for (i = 0; i < NUM; i++)
        scanf("%d", &a[i]);
}
int square_sum(int a[], int n)
{
    int i, sum = 0;
    for (i = 0; i < NUM; i++)
        sum += a[i] * a[i];
    return sum;
}

  • 写回答

1条回答 默认 最新

  • qq_34024716 2021-12-12 13:26
    关注

    因为当数组为参数的时候,他是传入的“地址”,因此你对这个参数的更改(也就修改了对应地址的值),会影响到这个数组本身,可以区别一下实参和形参

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日
  • 创建了问题 12月12日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b