<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      timleee

      導(dǎo)航

      c++數(shù)組傳參

      最近感覺(jué)老是碰到數(shù)組傳參的問(wèn)題,特別是二維的數(shù)組,每次報(bào)錯(cuò)都感覺(jué)頭疼,煩躁;這里必須總結(jié)一下了,先把暫時(shí)能解決的問(wèn)題寫(xiě)在這吧,以便以后碰到查看!

      先看一個(gè)一維數(shù)組傳參:這樣用數(shù)組傳參是很不安全的;會(huì)輸出亂碼。原因是函數(shù)返回的是一個(gè)數(shù)組,其保存的字符串" "存儲(chǔ)在棧中,函數(shù)結(jié)束后存儲(chǔ)該字符串的內(nèi)存(也就是棧上的內(nèi)存)被編譯器自動(dòng)釋放了。

      恩今天3-21;遇到了一個(gè)新的問(wèn)題比較有意思;關(guān)于數(shù)組。

      void print_1 (int n, int *a )
      {
          //for(int i=0;i<n;i++){
              a[n]={1,2,3};//為什么數(shù)組不允許這么賦值?
          }
      }
      int main(){
          int n=3;
          int datas[n]={0};
          print_1(n, datas);
          for (int i = 0; i < n; ++i)
              cout << datas[i] << " ";
          return 0;
      }

      編譯器報(bào)的錯(cuò):error: cannot convert '<brace-enclosed initializer list>' to 'int' in assignment

      因?yàn)樵趍ain()里,已經(jīng)對(duì)datas這個(gè)數(shù)組初始化了,那么datas這個(gè)數(shù)組名作為一個(gè)指針,已經(jīng)指向了內(nèi)存中的一個(gè)位置,so不能再次對(duì)它初始化,所以只能用循環(huán)語(yǔ)句

      給它賦值,讓他指向新的內(nèi)存單元。

      #include<iostream>
      using namespace std;
      #define A 5
      char * init_code(){//聲明是這樣的;
          char list[A]={'a','b','c','d','e'};
          return list;//這樣是沒(méi)問(wèn)題的,它傳的只是list這個(gè)指針的地址,并不會(huì)傳這個(gè)數(shù)組的大小;
      }
      int main(){
          char *tt=init_code();//調(diào)用時(shí)是這樣的;
          for(int i=0;i<A;i++){//這里定義了地址之后的大小;
              cout<<tt[i]<<endl;//在函數(shù)中是這樣的;
          }
          return 0;
      }

       二維數(shù)組的傳參:

      #include<iostream>
      using namespace std;
      typedef char(*R)[3];//定義二維數(shù)組R類(lèi)型
      R func(){
          char list[2][3];//這里的char還不能寫(xiě)為R;
          for(int i=0;i<2;i++){
              for(int j=0;j<3;j++){
                  list[i][j]='a';
              }
          }
          return list;
      }
      int main(){
          R x=func();//此時(shí)x是二維數(shù)組類(lèi)型的,將返回值付給他;
          for(int i=0;i<2;i++){
              for(int j=0;j<3;j++){
                  cout<<x[i][j];//如此調(diào)用
              }
              cout<<endl;
          }
          return 0;
      }

       一維數(shù)組的調(diào)用方法上邊那個(gè)是不對(duì)的,正確的應(yīng)該是下邊:

      void print_1 (int n, int *datas )
      {
          for (int i = 0; i < n; ++i)
          {
              cout << datas[i] << " ";
          }
          cout << endl;
      }
      int main(){
          const int N = 3;
          int datas[N] = {1, 2, 3};
          print_1 (N, datas);
          return 0;
      }
      或者這樣:
      template<int N>//模板是個(gè)好東西,可以讓傳入的參數(shù)的類(lèi)型變?yōu)橐粋€(gè)變
      //值,從而簡(jiǎn)化代碼冗余
      void print_4 (int (&datas)[N]) 
      {
          for (int i = 0; i < N; ++i)
          {
              std::cout << datas[i] << " ";
          }
          std::cout << std::endl;
      }
      int main(){
          const int N = 3;
          int datas[N] = {1, 2, 3};
          print_4 (datas);
          int datas2[N - 1] = {1, 2};
          print_4 (datas2);
      }
      
      

       

      
      

      posted on 2017-03-18 16:15  timleee  閱讀(2181)  評(píng)論(0)    收藏  舉報(bào)

      主站蜘蛛池模板: 午夜国产福利片在线观看| 精品无码av无码免费专区 | 免费无码成人AV片在线 | 337p西西人体大胆瓣开下部| 人妻av中文字幕无码专区| 久热久精久品这里在线观看| 亚洲精品第一区二区三区| 射阳县| 国产亚洲av日韩精品熟女| 亚洲综合国产精品第一页| 国产精品原创不卡在线| 光棍天堂在线手机播放免费| 国产精品论一区二区三区| 国产在视频线在精品视频2020| 丁香五月婷激情综合第九色| 久久久久亚洲AV色欲av| 丰满无码人妻热妇无码区| 乱女乱妇熟女熟妇综合网| 国产毛片基地| 久久综合色最新久久综合色 | 色噜噜一区二区三区| 72种姿势欧美久久久久大黄蕉| 国产精品爽爽va在线观看网站 | 国产亚洲AV电影院之毛片| 国产视频最新| 99精品人妻少妇一区二区| 射阳县| 国产福利酱国产一区二区| 伊人狠狠色丁香婷婷综合| 国产成人精品午夜福利| 国产精品自产在线观看一| 丰满少妇内射一区| 白丝乳交内射一二三区| 国产一区二区不卡91| 久久毛片少妇高潮| 亚洲一区av在线观看| 欧美变态另类牲交| 日韩V欧美V中文在线| 西贡区| 亚欧洲乱码视频在线专区| 亚洲精品熟女一区二区|