第6講 ポインタの学習

第4話 ポインタのポインタとは?

前話解答例
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           //ポインタの宣言
           int* a;
           //変数の宣言
           int i,j,k;
           //ポインタの初期化(メモリ割り当て)
           a=(int *)malloc;
           //ポインタに内容を代入
           for(i=0;i<60;i++)*(a+i)=i+1;
           //文字変数の宣言
           String^ w=L"";
           //配列の宣言
           int b[3][4][5];
           //配列への代入
           for(i=0;i<3;i++){
             for(j=0;j<4;j++){
               for(k=0;k<5;k++){
                 b[i][j][k]=*(a+20*i+5*j+k);
               }
             }
           }
           //表示
           for(i=0;i<3;i++){
             for(j=0;j<4;j++){
               for(k=0;k<5;k++){
                 if(b[i][j][k]<10)w=w+L"0"+(b[i][j][k]).ToString()+L" ";
                 if(b[i][j][k]>=10)w=w+(b[i][j][k]).ToString()+L" ";
               }
               w=w+L"\n";
             }
             if(i==0)label1->Text=w;
             if(i==1)label2->Text=w;
             if(i==2)label3->Text=w;
             w=L"";
          }
       }
};
}

続きは次話(明日更新します)ですが、予告だけしておきましょう。
int** a;
または
int **a;
と宣言するポインタです。

この場合、
**aが普通の変数、*aそのアドレスを収納するポインタ変数、さらに**aは*aのアドレスを収納するポインタのポインタ変数です。
?が浮かんでいますよね。
int *a;
と宣言したとき、aは変数*aのアドレスを収納するポインタ変数です。
変数である以上、アドレスを収納する箱が用意されているのです。
つまり、aにもアドレスが割り振られているのです。
アドレス代入
ですから、
int **a;なら
ポインタのポインタ



第3話へ 第5話へ


025


vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ



数学研究室に戻る