zoukankan      html  css  js  c++  java
  • 特定元素个数的数组作为函数入参的两个方法

    本文参考了如下链接:http://www.cnblogs.com/graphics/archive/2010/07/15/1777760.html

    数组作为入参时,自动被转换为指针。因此数组定义的元素个数的参数无法带入函数。这不符合coder的预期,也是不严格和有风险的coding。

    如何解决呢,一种办法是再加一个参数,指定元素个数

    void Test(int* a, int n)
    
    {
    
        for (int i = 0; i < n; ++i)
    
        {
    
            cout << a[i] << endl ;
    
        }
    
    }

    另外一种办法是传递数组的引用,本文的重点。

    void Test(int (&a)[3])
    
    {
    
        for (int i = 0; i < 3; ++i)
    
        {
    
            cout << a[i] << endl ;
    
        }
    
    }

    这样写数组a就不会被转换为指针了,而且有了元素个数的信息,调用的时候,也必须传递一个含有3个元素的数组

    int a[3] = {1, 2, 3} ;
    
    Test(a) ;    // ok
    
    
    
    int b[1] = {1} ;
    
    Test(b) ;    // error, can not convert parameter a from int[1] to int(&)[3]
    
  • 相关阅读:
    Node.js Express 框架
    Node.js RESTful API
    vim中自动格式化代码
    如何去掉linux配置文件的注释行和空行
    ImmutableJS
    JavaScript的相关知识
    React容器组件和展示组件
    node.js
    svg学习
    Redux 基础概念
  • 原文地址:https://www.cnblogs.com/atoman/p/5684273.html
Copyright © 2011-2022 走看看