亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

關于數組做函數參數的問題集合匯總

2020-01-26 15:43:17
字體:
來源:轉載
供稿:網友

首先是數組元素作為函數的實參,這和直接用多個變量作為函數的實參在用法上沒有什么差別。

作為例子的代碼:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int max(int a,int b);
        int a[2],m;
        a[0]=1;
        a[1]=2;
 m=max(a[0],a[1]);
 cout<<m; 
 return 0; 
}
int max(int a,int b ){
 if(a<b)a=b;
 return a;
}

輸出結果是:2

然后,是用數組名作為函數參數,數組名其實代表的是數組首個元素的指針。

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
        void alter(int b[]);//b[]括號里面的數值可寫可不寫,其作用是使編譯系統把它當作一維數組來處理
        int a[2];
        a[0]=1;
        a[1]=2;
 alter(a);
 cout<<a[0]<<"/n";
 cout<<a[1]<<"/n"; 
 return 0; 
}
void alter(int b[]){
 b[0]=3;
 b[1]=4;
}

輸出結果是:

3

4

如果我們這樣寫:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
        void alter(int b[20]);//b[]括號里面的數值可寫可不寫,其作用是使編譯系統把它當作一維數組來處理
        int a[2];
        a[0]=1;
        a[1]=2;
     alter(a);
        cout<<sizeof(a); 
 return 0; 
}
void alter(int b[20]){
 cout<<sizeof(b)<<endl;
}

輸出結果:

4

8

為什么我們已經定義了a[2]并且還賦值了,傳遞到函數以后,大小就只有一個單位呢?

其實,我們定義b[ ]或者b[2]或則b[1]、b[20]、b[100],作用都相當于是 *b。編譯器直接忽略了,括號里面的數值。

為了能夠更高的說明,數組名作為實參實際上是傳遞的數組的首指針,可以再看一下這個例子:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
    void alter(int *b);
    int a[2];
    a[0]=1;
    a[1]=2;
 alter(a);
 cout<<a[0]<<"/n";
 cout<<a[1]<<"/n"; 
 return 0; 
}
void alter(int *b){
 *b=3;
 *(b+1)=4;
}

這個和上面的那個輸出結果完全一樣!

================================分割線==========================

接下來,總結一下,數組的引用相關問題

首先是一個普通變量作為數組中一個值的引用的例子:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
    int a[2];
    a[0]=1;
    a[1]=2;
    int &t=a[0];
    t=5;
 cout<<a[0]<<"/n"; 
 return 0; 
}

輸出結果是:5

普通變量作為數組中一個值的引用時,在使用上和int &a=b;并沒有什么區別。

我們很自然的想到,普通的變量可以作為數組元素的引用,那么數組元素可否作為其他元素的引用呢?

看下面的代碼:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
   int a[2];
   int b=100;
   &a[0]=b;//這么做是不被允許的
   cout<<a[0]<<endl;
   return 0;
}

編譯器報錯了,提示我們這樣做是不被允許的。

但是捏,一個數組整體可以作為另一個數組的引用:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
    int a[2];
 a[0]=1;
 a[1]=2;
    int (&b)[2]=a;
    b[0]=3;
    b[1]=4;
 cout<<a[0]<<endl;
    cout<<a[1]<<endl;
 return 0;  
}

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
    int a[2];
 a[0]=1;
 a[1]=2;
    int (&b)[2]=a;
    b[0]=3;
    b[1]=4;
 cout<<a[0]<<endl;
    cout<<a[1]<<endl;
 return 0;  
}

因為數值中的元素是不可以其他變量的引用的額,所以需要用(&b)來說明,這是數組整體引用,然后還必須寫清楚數組的大小,即:
復制代碼 代碼如下:

(int (&b)[2])

這個使用方法,也就引出了,數組作為函數的形參的使用方法。

我們再看數組作為函數的形參的時候應該是怎樣的。

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 void sm(int (&b)[2]);
        int a[2];
 a[0]=1;
 a[1]=2;
 sm(a);
 cout<<a[0]<<endl;
        cout<<a[1]<<endl;
 return 0;  
}
 void sm(int (&b)[2]){
  b[0]=3;
  b[1]=4;
 }

輸出結果是

3

4

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
    int a[2];
 a[0]=1;
 a[1]=2;
    int (&b)[2]=a;
    b[0]=3;
    b[1]=4;
 cout<<a[0]<<endl;
    cout<<a[1]<<endl;
 return 0;  
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产va免费精品高清在线| 日本亚洲精品在线观看| 精品久久久久久久久久ntr影视| 欧美激情免费视频| 成人黄色在线观看| 日韩精品在线视频观看| 岛国av一区二区| 国产精品第一第二| 亚洲最大福利网| 美日韩精品免费观看视频| 91免费电影网站| 久久中文字幕一区| 日韩欧美成人区| 91av在线网站| 亚洲视频欧洲视频| 国产网站欧美日韩免费精品在线观看| 中文字幕精品一区二区精品| 91丨九色丨国产在线| 日韩a**站在线观看| 欧美精品福利视频| 国产精品视频免费在线观看| 成人做爰www免费看视频网站| 日韩精品一区二区视频| 在线观看成人黄色| 欧美激情videoshd| 欧美丝袜第一区| 久久精品视频在线观看| 国产精品免费在线免费| 亚洲成**性毛茸茸| 国产丝袜一区二区三区免费视频| 国产欧美最新羞羞视频在线观看| 国产欧美日韩高清| 国产精品一区二区三区久久| 欧美精品手机在线| 日韩最新在线视频| 日韩av综合网| 国产成人+综合亚洲+天堂| 国产在线观看一区二区三区| 亚洲精品资源在线| 波霸ol色综合久久| 高清亚洲成在人网站天堂| 亚洲男女性事视频| 亚洲在线第一页| 亚洲成人亚洲激情| 主播福利视频一区| 日本久久久久久久久| 亚洲精品电影在线| 国产亚洲成精品久久| 久久成年人视频| 欧美日韩在线一区| 久久久www成人免费精品张筱雨| 91精品国产综合久久香蕉922| 97精品久久久| 欧美日韩人人澡狠狠躁视频| 正在播放国产一区| 色综合影院在线| 夜夜嗨av一区二区三区免费区| 欧美插天视频在线播放| 日韩中文字幕不卡视频| 国产精品爽爽爽| 欧美日韩国产丝袜美女| 久久久久久久一区二区| 国产99久久精品一区二区 夜夜躁日日躁| 日韩中文字幕免费看| 国产精品久久综合av爱欲tv| 日韩精品视频在线| 亚洲欧美日韩国产成人| 97不卡在线视频| 欧美大胆a视频| 黑人巨大精品欧美一区二区免费| 海角国产乱辈乱精品视频| 久久久久久综合网天天| 日韩在线观看免费网站| 欧美视频在线观看 亚洲欧| 91精品久久久久久| 久久这里只有精品视频首页| 亚洲精品免费一区二区三区| 91精品国产777在线观看| 91理论片午午论夜理片久久| 国产精品亚洲自拍| 一本一本久久a久久精品牛牛影视| 日韩经典一区二区三区| 国产精品视频久久久| 亚洲女人初尝黑人巨大| 91免费版网站入口| 日本国产欧美一区二区三区| 日韩福利视频在线观看| 日韩在线观看视频免费| 国产精品成熟老女人| 国产精品日韩在线播放| 91精品在线播放| 久久九九精品99国产精品| 欧美一级片在线播放| 91亚洲国产成人精品性色| 日韩经典一区二区三区| 久久不射热爱视频精品| 欧美日韩在线观看视频小说| 日韩电影免费在线观看| 91精品国产91久久久久| 国产一区二区三区毛片| 国产综合在线视频| 热久久99这里有精品| 日韩欧美亚洲成人| 欧美日韩国产999| 精品国产依人香蕉在线精品| 97成人精品区在线播放| 国产精品视频一区国模私拍| 久久久久九九九九| 日本成人黄色片| 久久久久久久国产精品| 国产精品久久久久久久久| 91精品在线影院| 午夜精品久久17c| 久久久亚洲成人| 在线观看亚洲区| 精品欧美激情精品一区| 理论片在线不卡免费观看| 亚洲精品国产精品自产a区红杏吧| 日韩在线视频中文字幕| 精品无码久久久久久国产| 疯狂做受xxxx高潮欧美日本| 在线观看欧美日韩国产| 国产成人精品视频在线观看| 久久精品国产亚洲精品| 亚洲欧美激情视频| 免费不卡欧美自拍视频| 久久夜色精品国产欧美乱| 欧美性猛交xxxxx水多| 国产亚洲视频在线| 韩国精品久久久999| 久久天天躁日日躁| 欧美一乱一性一交一视频| 久久精品国产成人精品| 7m第一福利500精品视频| 欧美大片免费观看| 日韩在线观看电影| 国产一区二中文字幕在线看| 自拍偷拍免费精品| 亚洲伊人久久综合| 亚洲色图综合久久| 欧美在线视频在线播放完整版免费观看| 日韩精品在线影院| 精品国内自产拍在线观看| 91精品中国老女人| 亚洲xxxxx| 爱福利视频一区| 亚洲国产一区二区三区在线观看| 亚洲www视频| **欧美日韩vr在线| 亚州成人av在线| 国内精品久久久久| 色综合男人天堂| 欧美老少做受xxxx高潮| 久久久亚洲天堂| 久久久久久久色| 一本大道香蕉久在线播放29| 成人有码视频在线播放| 不卡av电影院| 久久久精品久久| 国产精品麻豆va在线播放| 国产成人精品一区二区在线| 国产成人精品日本亚洲专区61| 色樱桃影院亚洲精品影院| 全亚洲最色的网站在线观看|