c++基础入门笔记7数组

318 阅读2分钟

所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。

数组有三种定义方式:

  • 数据类型 数组名[数组长度];
  • 数据类型 数组名[数组长度]={元素1,元素2......};//数组长度代表元素的个数,这是由你自定义的,且不能少于元素个数
  • 数据类型 数组名[]={元素1,元素2......};//元素有多少个,[]里会自动分配数组长度
int a[10] = { 1,2,3,4,5,6,7 };
/*我们想要取得数组里的的,就要再次调用数字名,而[]里的数变成了下标,
计算机计数是从0开始的,所以我们定义了a[10]数组,但元素是a[0]——a[9]*/
	cout << a[0] << endl;//输出1
	cout << a[7] << endl;//未定义的元素,系统自动填充0
	
	for(int i=0;i<10;i++){//我们还可以用for循环逐个输出
	    cout<<a[i]<<endl;
	}

内存和地址的关系

数组名的代表的是这个数组的首地址

内存具有一定空间,而一段内存的地址是最前面的计算机给的编号,数组的首地址代表了这一整个数组的空间。所以arr[0]的地址就是数组的地址。

int arr[5];
cout<<arr<<endl;//输出的正是a[10]这个数组的首地址
cout<<&arr[0]<<endl;//结果同上
cout<<sizeof(arr)<<endl;//得到20,可知数组并不会多占用内存

作业:找一个数组中的最大值和最小值

元素逆置

int arr[7] = { 1,2,3,4,5,6,7 };
	int start = 0,end=6;//扩展,end=sizeof(arr)/sizeof(arr[0])
	for (int a=0; a < 7; a++) {
		cout << arr[a] << endl;
	}
	while (start < end) {
		int temp=arr[start];
		arr[start] = arr[end];
		arr[end] = temp;
		start++;
		end--;
		
	}
	for (int a = 0; a < 7; a++) {
		cout << arr[a] << endl;
	}

二维数组

已经初始化数据了的,可以省略行数。

int arr[2][3]={//两行三列
    {1,2,3},
    {4,5}
};//加上;
cout<<arr[0][1]<<endl;//

其余和一维数组大致相同;

作业:计数