程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++數組

C++數組

編輯:關於C++

1、數組名的本質

數組名的本質相當於一個常量指針

如:int a[10] a<=>int *const a;

int b[10][20] b<=>int (*const b)[20]

所以a[5]==*(a+5);

b[8][9]==*(*(b+8)+9)==*(b+8)[9];

2、數組在函數中傳參時會被降級為指針

3、數組大小

#include<iostream>
using namespace std;
int main()
{
	int arr[] = { 1, 2, 3, 4 };
	int *ptr = (int *)(&arr + 1);//ptr指向數組後的一個一片四字節空間
	cout << *(arr + 1) << endl;//2此時的arr代表數組首元素的首地址
	cout << *(ptr - 1) << endl;//4,&arr代表整個數組的首地址
	cout << sizeof(arr[100]) << endl;//arr[100]不會出錯,因為sizeof是關鍵字,求值是在編譯的時候所以不會出錯
	//&arr與&arr[0]代表不同的含義,&arr整個數組的首地址,&arr[0]數組首元素的地址
	cout << &arr[0] << endl;//0100FCB0
	cout << &arr[1] << endl; //0100FCB4數組的元素a[0]在低地址, a[n]在高地址
	cout << sizeof(arr) << endl;//16
	int brr[2][3] = { { 1, 2, 3 }, { 3, 4 } };

	cout << sizeof(brr) << endl;//24相當於整個數組的大小
	cout << brr << endl;//0048FA5C
	cout << sizeof(*brr) << endl;//12相當於一位數組brr[3]的大小
	cout << *brr << endl;//0048FA5C
	cout << sizeof(&brr) << endl;//4普通指針的大小
	cout << &brr << endl;//0048FA5C
	cout << sizeof(&brr[0]) << endl;//4
	cout << &brr[0] << endl;//0048FA5C
	cout << sizeof(&brr[0][0]) << endl;;//4
	cout << &brr[0][0] << endl;//0048FA5C
	cout << sizeof(brr[0]) << endl;//12相當於一位數組brr[3]的大小
	cout << brr[0] << endl;//0048FA5C
	system("pause");
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved