zoukankan      html  css  js  c++  java
  • c语言之在函数内部改变数组的值从而影响外部数组的四种方式

    1.形参和实参都用数组名。

    2.实参采用数组名,形参采用指针变量。

    3.实参和形参都采用指针变量。

    4.实参为指针变量,形参为数组名。

    #include<stdio.h>
    #include<iostream>
    
    //第一种方式
    //注意传入的是a[],而不是a
    void change(int a[]){
        a[4] = 888;
    }
    //第二种方式
    void change2(int* a) {
        *(a+4) = 999;
    }
    //第三种方式
    void change3(int* p) {
        *(p + 4) = 333;
    }
    //第四种方式
    void change4(int a[]) {
        a[4] = 222; 
    }
    void printArr(int arr[],int length) {
        for (int i = 0; i < length; i++)
        {
            printf("%d ", arr[i]);
        }
        putchar('
    ');
    }
    int main() {
        int a[5] = { 1,2,3,4,5 };
        int length = sizeof(a) / sizeof(a[0]);
        printf("改变之前的数组:
    ");
        printArr(a, length);
        change(a);
        printf("改变之后的数组:
    ");
        printArr(a, length);
    
        printf("改变之前的数组:
    ");
        printArr(a, length);
        change2(a);
        printf("改变之后的数组:
    ");
        printArr(a, length);
    
        printf("改变之前的数组:
    ");
        printArr(a, length);
        int* p = a;
        change3(p);
        printf("改变之后的数组:
    ");
        printArr(a, length);
    
        printf("改变之前的数组:
    ");
        printArr(a, length);
        int* p2 = a;
        change4(p2);
        printf("改变之后的数组:
    ");
        printArr(a, length);
    
        system("pause");
        return 0;
    }

    输出:

  • 相关阅读:
    潜水员
    混合背包
    多重背包问题
    归并排序——最省时的排序
    HDU 1556 Color the ball
    2016 ACM/ICPC Asia Regional Dalian Online Football Games
    poj 2352 Stars
    poj 2299 Ultra-QuickSort
    关于原码反码补码以及位元算
    2016 湖南省省赛 Problem A: 2016
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12120256.html
Copyright © 2011-2022 走看看