指针和数组

 2023-04-20 10:24:03  阅读 0

在C++中,对于大量的数据处理常常会使用到数组,数组其实就是系统根据用户要求在内存中分配连续的空间,并且给这段连续的空间一个名字。

如下代码所示:

 

#include <iostream>
using namespace std;

int main(){
	int num[5] = {1, 2, 3, 4, 5};
	int i;
	for (i = 0; i < 5; i++){
		cout << &num[i] << endl;
	}
	return 0;
}

 

 

 

 

 

如图中所示,可以观察到,在打印出此数组中每个数据的地址后会发现所有的地址段都是间隔相同大小的,每两个地址之间的差值是4,因为本身int类型的数据就占用四个字节大小的内存空间

 

而且,在C++中数组的名字默认指向的是首地址,也就是第一个数据的地址,如下:

 

#include <iostream>
using namespace std;

int main(){
	int num[5] = {1, 2, 3, 4, 5};
	int i;
	cout << num << endl;
	cout << &num[0] << endl;
	return 0;
}

 

 

 

 

 

将num和&num[0]都直接打印出来会发现它们所在的地址是相同的,因为num相当于是一个指针,而不是指向其中的数据,因此直接打印num得到的就是num的地址,对于数组的使用我们不难发现,数组名在本质上和指针差不多,因此,也可以使用指针的方式来遍历数组。

 

#include <iostream>
using namespace std;

int main(){
	int num[5] = {1, 2, 3, 4, 5};
	int i;
	for (i = 0; i < 5; i++){
		cout << *(num + i) << endl;
	}
	return 0;
}

 

上一篇: 一维数组
下一篇: 动态内存分配
标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码