zoukankan      html  css  js  c++  java
  • @清晰掉 传递数组给函数

    一维数组

    传递数组给函数的3个原则

    1.函数调用时只需传递数组名。

    2.在函数定义中,形参的类型必须与数组的相同,数组的大小不必指定。

    3.函数原型必须定义为参数是一个数组。

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 void sort(int x[], int m);
     4 int main()
     5 {
     6     int i;
     7     int marks[5] = {40, 90, 73, 81, 35};
     8      
     9     printf("Marks before sorting
    ");
    10     for(i = 0; i < 5; i++)
    11           printf("%d ", marks[i]);
    12     printf("
    ");
    13      
    14     sort(marks, 5);
    15     printf("Marks after sorting
    ");
    16     for(i = 0; i < 5; i++)
    17           printf("%d ", marks[i]);
    18     printf("
    ");
    19      
    20     system("pause");
    21 }
    22  
    23 void sort(int x[], int m)
    24 {
    25      int i, j , t;
    26       
    27      for(i = 1; i <= m-1; i++)
    28         for(j =1; j <= m-i; j++)
    29            if(x[j-1] >= x[j])
    30            {
    31               t = x[j-1];
    32               x[j-1] = x [j];
    33               x[j] = t;
    34            }
    35 }

    二维数组

    1.函数调用时只需传递数组名。

    2.在函数定义中,必须使用两个方括号以表明数组为二维的。

    3.必须指定数组第二个维的大小。

    4.函数原型的定义必须与函数头相同。

    //方法一, 形参给出第二维的长度。
    
    //例如:
    
    #include <stdio.h>
    
    void func(int n, char   str[ ][5] )
    
    {
    
    int i;
    
    for(i = 0; i < n; i++)
    
       printf("
    str[%d] = %s
    ", i, str[i]);
    
    }
    
    void main()
    
    {
    
    char* p[3];
    
    char str[][5] = {"abc","def","ghi"};
    
    func(3, str);
    
    }
    
    //方法二,形参声明为指向数组的指针。
    
    //例如:
    
    #include <stdio.h>
    
    void func(int n, char  (*str)[5] )
    
    {
    
    int i;
    
    for(i = 0; i < n; i++)
    
       printf("
    str[%d] = %s
    ", i, str[i]);
    
    }
    
    void main()
    
    {
    
    char* p[3];
    
    char str[][5] = {"abc","def","ghi"};
    
    func(3, str);
    
    }
    
    //方法三,形参声明为指针的指针。
    
    //例如:
    
    #include <stdio.h>
    
    void func(int n, char **str)
    
    {
    
    int i;
    
    for(i = 0; i < n; i++)
    
       printf("
    str[%d] = %s
    ", i, str[i]);
    
    }
    
    void main()
    
    {
    
    char* p[3];
    
    char str[][5] = {"abc","def","ghi"};
    
    p[0] = &str[0][0];
    
    p[1] = str[1];
    
    p[2] = str[2];
    
         func(3, p);
    
    }

    将字符串传递给函数

    1.要传递的字符串必须在定义时声明为函数的形参。例如:

    void display(char item_name[])

    {

      ……

    }

    2.函数原型必须能表示参数是字符串。对于上面的函数定义,其原型可以写做:

    void display(char str[]);

    3.函数调用必须带一个无下标的字符串数组名作为其实参。例如:

    display(name);

    其中,name是在调用函数中已正确声明的字符串数组。

    在C语言中,与数组一样,字符串不能按值传递给函数。

  • 相关阅读:
    使用 requests 维持会话
    使用 requests 发送 POST 请求
    使用 requests 发送 GET 请求
    requests 安装
    使用 urllib 分析 Robots 协议
    使用 urllib 解析 URL 链接
    使用 urllib 处理 HTTP 异常
    使用 urllib 处理 Cookies 信息
    使用 urllib 设置代理服务
    按单生产程序发布
  • 原文地址:https://www.cnblogs.com/ysdu/p/4741342.html
Copyright © 2011-2022 走看看