C++配列参照


ネットユーザー8:
           ,          。
    
int (&b)[3] = a;
b       ,b    。
b       a.
    
            
int& b[3];
  b    ,         。  
int& b[3];
  C++   ,              。
                            。
       :
int a = b;
a b        ,    。
  
int &a = b;
    ,   a        。

ネットユーザー1:
     《    》    ,        :
          void  function(int &array[5])
          {
                //…………
           }
           void main()
           {
                 int arr[5]={1,2,3,4,5};
                 function(arr);
           }
               ??   ~~ 
           
 
 

ネットユーザー2:
void  function(int &array[5])
   &,           ,  C++        ,    :
void  function(int *&array)    ,         ,         

 
ネットユーザー3:
void  function(int (&array)[5]) 
 

ネットユーザー4:
配列参照は配列の階層化を回避します(VCKBASEC++フォーラムに掲載されています).
[hpho]のテンプレート関数に啓発され、この文を特筆したのは、同じように残念だ.配列の階層化は嫌なことで、これはC言語では解決できない問題で、まずコードを見て、何が「配列の階層化」なのかを理解します.
#include using namespace std;
void Test(char array[20]){cout<int main( void ) {     char array[20] = { 0 };     cout << sizeof(array) << endl;//出力20 Test(array);}
なぜ同じarray出力20出力4を宣言したのですか?これは、void Test(char array[20])のarrayがステップダウンされたためであり、void Test(char array[20])はvoid Test(char array[])に等しく、void Test(char*const array)にも等しく、BT(冗談)であればvoid Test(char array[999])にも等しい.つまりvoid Test(char array[20]){cout<では、C言語でこの問題をどのように解決しますか?仕方がない.a:char arrayが1つしかない構造を作り、char arrayの代わりにこの構造ポインタを使用する[20].これは煩雑な方法であり、直観的ではないことがわかる.b:Test内部での使用_msizeでarray長を計算します.これはさらにだめです.まず、コンパイル期間ではなく、エラーの発見を実行期間に延期します.次に_msize長/要素サイズ>=array長、すなわちnew char[19]とnew array[20]の割り当ての大きさは同じであり、これによりプログラムのクラッシュを招くことはないが、演算結果は正しくない.
[hpho]に感謝します.その啓発を受けて、C++にはCにはない「引用」がありますが、配列参照はどのように明記されていますか.いくつかの実験を経て
#include using namespace std;
void Test(char(&array)[20])/char*p[20]とchar(*p)[20]の違いに似ていますか?{     cout << sizeof(array) << endl; }
int main( void ) {     char array[20] = { 0 };     cout << sizeof(array) << endl;     Test( array ); }
 
 
ネットユーザー5:
配列参照効率はポインタに相当し、より多くの情報が含まれているのではないでしょうか.私は少し前にテンプレート関数を見たことがあります.周星の方法と同じです.template          void Test(T (&array)[N])  {          cout< 
 
ネットユーザー6:
vectorを使うと、コンパイラはいろいろなことをしますが、もっと直感的です!サポートvector
 
 
ネットユーザー7:
           C++          。                   ,             。
http://blog.csdn.net/wfwd/archive/2006/05/30/763551.aspx

  int a[3] ={10,20,30};
int (&b)[3] = a;
            ,  b a        ,b   a      ?