啊啊啊啊阿阳 2022-12-13 16:12 采纳率: 100%
浏览 18
已结题

C语言参数传递的问题

数组arr[]传递到函数内数组a[]后,数组a[]进行排序为什么也会引起数组arr[]的变化,这里不是值传递吗


#include<stdio.h>
 
void Quicksort(int a[], int left, int right) {   //快排函数
    int temp;
    int mid = a[(left + right) / 2];            //找基准值
    int i = left;
    int j = right;

    while (i <= j) {   
        while (a[i] < mid) i++;
        while (a[j] > mid) j--;
        if (i <= j) {
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
            i++;
            j--;
        }
    }
    if (i < right) Quicksort(a, i, right);        //递归
    if (j > left) Quicksort(a, left, j);           //递归
}
 
int main() {
    int n, m, i;
    int arr[100];
    scanf_s("%d", &n);
    for (i = 0; i < n; i++) {
        scanf_s("%d", &arr[i]);                        //输入
    }
 
    Quicksort(arr, 0, n - 1);                        //调用函数
 
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);                        //输出
    }
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-13 16:22
    关注

    数组名相当于指针,是数组的首地址,实际值传递的是首地址。因此对a数组内容的修改,实际也是修改arr数组内容

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来