數組指針的簡單應用
- 數組指針本質上是一個指針;
- 指向數組首元素位址;
- 應用
int main() {
float score[][2] = { { 88, 99 }, { 79, 85 }, { 99, 98 }, {100,100} };//定義二維數組來表示國文數學成績,第一維為變量表示學生的個數
float(*p)[2];
p = (float(*)[2])score;
int i, num;
while (1)
{
cout << "請輸入學生序号:";
loop:cin >> num;
if (num >= sizeof(score)/sizeof(score[0]))
{
cout << "該學生不存在,請重新輸入:";
goto loop;
}
//傳回為一維數組指針,指向一個學生語數成績
for (i = 0; i<2; i++)
cout << *(*(p + num)+ i) << " ";
//p是指向二維數組的指針,加*取一維數組的指針,
//對一維數組解引用就可以取到一個學生語數成績。
cout << endl;
}
system("pause");
return 0;
}
- float(*p)[2];-------函數指針的定義得記清楚;
- p是指向二維數組的指針,預設指向二維數組的首位址即第一個學生的語數成績的位址,是以**p 的數值是 88;
-
中的num代表行,i代表列。*(*(p + num)+ i)