程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++將數組名作為函數參數對數組元素停止響應的運算

c++將數組名作為函數參數對數組元素停止響應的運算

編輯:關於C++

c++將數組名作為函數參數對數組元素停止響應的運算。本站提示廣大學習愛好者:(c++將數組名作為函數參數對數組元素停止響應的運算)文章只能為提供參考,不一定能成為您想要的結果。以下是c++將數組名作為函數參數對數組元素停止響應的運算正文


用數組名做函數參數與用數組元素作實參有幾點分歧:

(1)用數組元素作實參時,只需數組類型和函數的形參變量的類型分歧,那末作為下標變量的數組元素的類型也和函數形參變量的類型是分歧的。是以,其實不請求函數的形參也是下標變量。換句話說,對數組元素的處置是按通俗變量看待的。用數組名作函數參數時,則請求形參和響應的實參都必需是類型雷同的數組,都必需有明白的數組解釋。當形參和實參二者類型紛歧致時,將會產生毛病。

(2)用通俗變量或下標變量作函數參數時,形參變量和實參變量都是由編譯體系分派的兩個分歧的內存單位。在函數挪用時停止的值傳遞是把實參變量的值付與形參變量。在用數組名做函數參數時,不是停止值的傳遞,即不是把實參數組的每個元素的值都付與形參數組的各個元素。由於現實上形參數組其實不存在,編譯體系不為形參數組分派內存。由於數組名就是數組的首地址。是以用數組名做函數參數時所停止的傳遞現實上是地址的傳遞,也就是把實參數組的首地址付與形參數組名。形參數組名獲得該首地址後,也就等於有了詳細的地址。現實上是形參數組和實參數組為統一數組,配合應用一段內存空間。


//例:一維數組score,寄存10個先生的成就,求均勻值。

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
float average(float array[10])
{   int i;
    float aver,sum=array[0];
    for(i=1; i<10; i++)
        sum=sum+array[i];
    aver=sum/10;
    return aver;
}
void main()
{   float score[10],aver;
    int i;
    printf("input 10 score:\n");
    for(i=0; i<10; i++)
        scanf("%f",&score[i]);
    printf("\n");
    aver=average(score);
    printf("average score is %5.2f\n",aver);
}

解釋:

(1)用數組名作函數參數,應當在主調函數和被調函數平分別界說數組。
(2)實參數組與形參數組類型應分歧,如紛歧致,成果將失足。
(3)現實上,指定被調函數中形參數組的年夜小是不起任何感化的,由於C編譯器對形參數組年夜小不做檢討,只是將形參數組的首地址傳給形參數組。
(4)形參數組也能夠不指定年夜小,界說數組時在數組名後跟一個空的中括號,為了在被調函數中處置數組元素的須要,可以另設一個參數,傳遞數組元素的個數。


#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
float average(float array[],int n)
{   int i;
    float aver,sum=array[0];
    for(i=1; i<n; i++)
        sum=sum+array[i];
    aver=sum/n;
    return aver;
}
void main()
{   float score1[5]= {98.5,97,91.5,60,55};
    float score2[10]= {67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};
    printf("the average of class A is %6.2f\n",average(score1,5));
    printf("the average of class B is %6.2f\n",average(score2,10));
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved