天天看點

數組指針的簡單應用

數組指針的簡單應用

  • 數組指針本質上是一個指針;
  • 指向數組首元素位址;
  • 應用
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;
  • *(*(p + num)+ i)

    中的num代表行,i代表列。

繼續閱讀