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
  • 相关阅读:
    最小生成树
    负环详解
    P2053 [SCOI2007]修车
    P3254 圆桌问题
    P3114 [USACO15JAN]踩踏Stampede
    SP1043 GSS1
    SP2713 GSS4
    导出mysql内数据 python建倒排索引
    社团管理系统——总结报告
    北京地铁出行线路规划——代码实现
  • 原文地址:https://www.cnblogs.com/victoria-c/p/6258671.html
Copyright © 2011-2022 走看看