zoukankan      html  css  js  c++  java
  • 数组做为函数参数时的几种情况

    摘自C程序设计(第三版),谭浩强

    如果有一个实参数组,要想在函数中改变此数组中的元素的值,实参和形参的对应关系有4种情况。

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

     1 void main()
     2 {
     3     int a[10];
     4     ...
     5     f(a,10)   
     6 }
     7 
     8 void f(int x[],int n)
     9 {
    10  ...   
    11 }
    12 
    13 //由于形参数组名接收了实参数组首元素的地址,因此可以认为在函数调用期间,形参数组与实//参数组共用一段内存单元,这种形式比较好理解
    View Code

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

     1 void main()
     2 {
     3     int a[10];
     4     ...
     5     f(a,10)   
     6 }
     7 
     8 void f(int *x,int n)
     9 {
    10  ...   
    11 }
    12 
    13 //实参a为数组名,形参x指向整型变量的指针变量,函数开始执行时,x指向a[0],x=&a[0],//通过x值的改变,可以指向a数组的任一元素。
    View Code

    3.实参形参都用指针变量

     1 void main()
     2 {
     3     int a[10];
     4     int *p = a;
     5     ...
     6     f(p,10)   
     7 }
     8 
     9 void f(int  *x,int n)
    10 {
    11  ...   
    12 }
    View Code

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

     1 void main()
     2 {
     3     int a[10];
     4     int *p = a;
     5     ...
     6     f(p,10)   
     7 }
     8 
     9 void f(int x[],int n)
    10 {
    11  ...   
    12 }
    13 
    14 //形参x为数组名,编译系统把x作为指针变量处理
    View Code
  • 相关阅读:
    树剖
    codeforces round 589
    codeforces round 590
    code craft 20
    Ozon Tech Challenge 2020 (Div.1 + Div.2)
    codeforces round 625
    Crime HDU
    codeforces 594
    codeforces 596
    python操作mysql方法和常见问题
  • 原文地址:https://www.cnblogs.com/victoria-c/p/6258671.html
Copyright © 2011-2022 走看看