最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于數(shù)組做函數(shù)參數(shù)的問題集合匯總

 更新時(shí)間:2013年10月21日 09:48:52   作者:  
本文是對(duì)關(guān)于數(shù)組做函數(shù)參數(shù)的問題進(jìn)行了詳細(xì)的匯總,需要的朋友可以過來參考下。希望對(duì)大家有所幫助

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

作為例子的代碼:

復(fù)制代碼 代碼如下:

#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;
}

輸出結(jié)果是:2

然后,是用數(shù)組名作為函數(shù)參數(shù),數(shù)組名其實(shí)代表的是數(shù)組首個(gè)元素的指針。

復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
        void alter(int b[]);//b[]括號(hào)里面的數(shù)值可寫可不寫,其作用是使編譯系統(tǒng)把它當(dāng)作一維數(shù)組來處理
        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;
}

輸出結(jié)果是:

3

4

如果我們這樣寫:

復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
        void alter(int b[20]);//b[]括號(hào)里面的數(shù)值可寫可不寫,其作用是使編譯系統(tǒng)把它當(dāng)作一維數(shù)組來處理
        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;
}

輸出結(jié)果:

4

8

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

其實(shí),我們定義b[ ]或者b[2]或則b[1]、b[20]、b[100],作用都相當(dāng)于是 *b。編譯器直接忽略了,括號(hào)里面的數(shù)值。

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

復(fù)制代碼 代碼如下:

#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;
}

這個(gè)和上面的那個(gè)輸出結(jié)果完全一樣!

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

接下來,總結(jié)一下,數(shù)組的引用相關(guān)問題

首先是一個(gè)普通變量作為數(shù)組中一個(gè)值的引用的例子:

復(fù)制代碼 代碼如下:

#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; 
}

輸出結(jié)果是:5

普通變量作為數(shù)組中一個(gè)值的引用時(shí),在使用上和int &a=b;并沒有什么區(qū)別。

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

看下面的代碼:

復(fù)制代碼 代碼如下:

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

編譯器報(bào)錯(cuò)了,提示我們這樣做是不被允許的。

但是捏,一個(gè)數(shù)組整體可以作為另一個(gè)數(shù)組的引用:

復(fù)制代碼 代碼如下:

#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;  
}

復(fù)制代碼 代碼如下:

#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;  
}

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

(int (&b)[2])

這個(gè)使用方法,也就引出了,數(shù)組作為函數(shù)的形參的使用方法。

我們?cè)倏磾?shù)組作為函數(shù)的形參的時(shí)候應(yīng)該是怎樣的。

復(fù)制代碼 代碼如下:

#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;
 }

輸出結(jié)果是

3

4

復(fù)制代碼 代碼如下:

#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;  
}

相關(guān)文章

  • Qt使用QChart實(shí)現(xiàn)靜態(tài)顯示溫度變化曲線

    Qt使用QChart實(shí)現(xiàn)靜態(tài)顯示溫度變化曲線

    QChart模塊是Qt?Charts庫的基礎(chǔ),提供了用于創(chuàng)建和顯示各種類型圖表的類和接口,本文主要介紹了如何使用QChart實(shí)現(xiàn)動(dòng)態(tài)顯示3個(gè)設(shè)備的溫度變化曲線,感興趣的可以了解一下
    2023-06-06
  • C++多繼承多態(tài)的實(shí)例詳解

    C++多繼承多態(tài)的實(shí)例詳解

    這篇文章主要介紹了C++多繼承多態(tài)的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言實(shí)現(xiàn)控制臺(tái)掃雷小游戲

    C語言實(shí)現(xiàn)控制臺(tái)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)控制臺(tái)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 解決c++?error:crosses?initialization?of?問題

    解決c++?error:crosses?initialization?of?問題

    最近在寫代碼的時(shí)候,碰到了?crosses?initialization?of?...?的問題,只因我在?switch?的某個(gè)?case?分支下定義了一個(gè)變量,于是乎便將這個(gè)問題整理一下,需要的朋友可以參考下
    2023-03-03
  • VC中Tab control控件的用法詳細(xì)解析

    VC中Tab control控件的用法詳細(xì)解析

    以下是對(duì)VC中Tab control控件的用法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下哦
    2013-09-09
  • C++中的const的使用詳解

    C++中的const的使用詳解

    這篇文章主要介紹了 C++中的const的使用詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C語言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出

    C語言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出

    今天小編就為大家分享一篇關(guān)于C語言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++中關(guān)于union的使用方法說明

    C++中關(guān)于union的使用方法說明

    這篇文章主要介紹了C++中關(guān)于union的使用方法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++實(shí)現(xiàn)簡單24點(diǎn)游戲

    C++實(shí)現(xiàn)簡單24點(diǎn)游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單24點(diǎn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Qt實(shí)現(xiàn)文本編輯器(一)

    Qt實(shí)現(xiàn)文本編輯器(一)

    在Qt中QMainWindow是一個(gè)為用戶提供主窗口程序的類,包含了:菜單欄、工具欄、錨接部件、狀態(tài)欄以及一個(gè)中部件。本文將利用QMainWindow制作一個(gè)文本編輯器,感興趣的可以試一試
    2022-01-01

最新評(píng)論

嘉黎县| 广平县| 怀化市| 东阿县| 泽普县| 贺州市| 华容县| 晋江市| 古浪县| 南昌市| 肇州县| 梓潼县| 舟曲县| 达州市| 淮阳县| 杭州市| 常熟市| 石河子市| 赤水市| 开鲁县| 微山县| 六盘水市| 长沙市| 沭阳县| 南通市| 牙克石市| 乌什县| 筠连县| 闻喜县| 德令哈市| 泗洪县| 康马县| 含山县| 石狮市| 河间市| 嘉定区| 吴忠市| 田阳县| 温州市| 平原县| 从江县|