1. 程式人生 > >將陣列傳遞給函式

將陣列傳遞給函式

把一個大陣列傳遞給函式會消耗很多記憶體(我不知道這句話是否適用於所有語言)。有兩種方法可以避免這種現象:

  • 傳遞陣列的指標
  • 使用陣列的切片

接下來的例子闡明瞭第一種方法:

package main
import "fmt"

func main() {
    array := [3]float64{7.0, 8.5, 9.1}
    x := Sum(&array) // Note the explicit address-of operator
    // to pass a pointer to the array
    fmt.Printf("The sum of the array is: %f"
, x) } func Sum(a *[3]float64) (sum float64) { for _, v := range a { // derefencing *a to get back to the array is not necessary! sum += v } return }

輸出結果:

The sum of the array is: 24.600000

但這在 Go 中並不常用,通常使用切片

轉載地址

相關推薦

陣列傳遞函式

把一個大陣列傳遞給函式會消耗很多記憶體(我不知道這句話是否適用於所有語言)。有兩種方法可以避免這種現象: 傳遞陣列的指標 使用陣列的切片 接下來的例子闡明瞭第一種方法: package main import "fmt" func mai

關於陣列作為引數傳遞函式的簡單使用

簡單的方式可以將陣列作為一個全域性變數,然後就可以在函式中使用了. 另外的一種方式為: function1(int a[]) { cout<<a[0]<<end

陣列安全地傳遞函式的解決方法

注:本文是我學習C++過程中的一點心得,僅供初學者參考,老鳥就不用浪費時間來看了.有時我們需要將整個陣列的資料傳遞給某個函式.通常大家如下定義:int function(int arr[10]);或者:int function(int* arr);其實兩者是等價的.陣列將被

C++陣列作為形參傳遞函式

以下三種形式等價 void function(const int *arg); void function(const int arg[]); void function(const int arg[

QT通過執行緒資料傳遞函式進行顯示

根據別人的程式碼,自己重新寫一次加深印象。 標頭檔案mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QThread>

關於二維陣列作為引數傳遞函式的問題

剛碰到要寫一個函式func,要傳入一個二維陣列給該函式,於是寫成func(int a[][]);但馬上又發現將二維陣列傳給函式時必須指定第二維的維數,因為函式傳遞的是一個指向一個一維陣列的指標,這個一維陣列中儲存有著若干元素的陣列,所以函式必須要知道這個指標所指向物件的資訊

vector動態二維陣列傳遞函式問題

1.還以可以傳指標:vector <vector <CString> > * stationitem = &m_stationitem;這個不需要知道大小。 2.不傳指標 給你個小例子 v

c之陣列傳進函式中的方法

【方法】         將陣列的首地址和陣列的長度傳入函式中 【例如】        函式宣告        void traversal(int  *array ,int    n);        函式呼叫        traversal (array,n); 【遍

angular2.0父子元件通訊---如何通過元件屬性資料傳遞子元件

1.input properties, typically adorned with @Input decorations. import{Component,Input}from'@angu

7、Web(js):變數傳遞下一個網頁

從A網頁的某個資料w點選,進入B網頁,B網頁網址為xxx.aspx?並且將變數result傳遞到B網頁 td.innerHTML = "<a  href='xxx.asp?StartDate=" + result + "' target='_blank'>" +

一個二維陣列以一維陣列的形式傳函式

現在要計算二維陣列input每行資料的平均值,我們呼叫下面的aver_line函式。 double aver_line(double []);//計算並返回一維陣列平均值的函式 double input[LINE][ROW];//這是一個二維陣列 for(i=0

Matlab中如何(自定義)函式作為引數傳遞另一個函式

原文連結:http://blog.sina.com.cn/s/blog_53f2911901000a1h.html 假如我們編寫了一個積分通用程式,想使它更具有通用性,那麼可以把被積函式也作為一個引數。在c/c++中,可以使用函式指標來實現上邊的功能,在matlab中如何實現呢?使用函式控

C++傳遞陣列函式

C++ 傳遞陣列給函式 C++ 陣列 C++ 陣列 C++ 中您可以通過指定不帶索引的陣列名來傳遞一個指向陣列的指標。 C++ 傳陣列給一個函式,陣列型別自動轉換為指標型別,因而傳的實際是地址。 如果您想要在函式中傳遞一個一維陣列作為引數,您必須以下面三種方式來

用一個函式實現一行字串中最短的單詞輸出。此行字串從主函式傳遞給函式。假設字串中包含的單詞以空格作為分隔符號,例如”Asia Games 2010 is held in GuangZhou.”,其中最短的單詞是”is”和”in”。

山大 23:57:13 /* 輸入完單詞後不用再加空格!如果是兩個單詞一樣短還不能實現*/ #include<stdio.h>#include<string.h>void main(){int f(char str[],char str1[],int

c語言傳遞陣列函式的三種方式(注意均為引用傳遞)

一、形參為一個指標voidmyFunction(int *param){...}二、形參為一個已知大小的陣列voidmyFunction(intparam[10]){...}三、形參為一個位置大小的數字(通常把大小也作為引數傳遞過去)voidmyFunction(intpar

C語言中如何陣列作為函式引數傳遞

今天覆習到c語言的陣列,看到這麼一個問題: 現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。 程式要處理的冪最大為100。 輸入格式: 總共要輸入兩個多項式,每個多項式的輸入格式如下: 每行輸入兩個數字,第一個表

React Native之函式作為引數傳遞另外一個函式去呼叫

1 用法 我們一般喜歡把js裡面的函式作為引數傳遞給另外一個函式,然後再呼叫這個函式,有點像C語言裡面的函式指標         2 程式碼測試 寫了一個函式,2個引數分別是函式,然後更具資料決定呼叫哪個函式 /** *

Spring MVC(三)控制器獲取頁面請求引數以及控制器資料傳遞頁面和實現重定向的方式

首先做好環境配置 在mvc.xml裡進行配置   1.開啟元件掃描   2.開啟基於mvc的標註   3.配置試圖處理器 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www

C-函式陣列引數另一個函式,使用malloc

// // main.c // // // Copyright © 2018 [email protected] // #include <stdio.h> #include<stdio.h> void fun(int *array){ int sum=

指標(五)————傳遞指標函式

#include <iostream> using namespace std; void getSeconds(int *par); double getAverage(int *arr, int size);//入參是指標,本質上是要求傳一個地址過來 int main () {