为什么intarr=new int[10]
直接arr[i]访问数组了
arr不是一个指针变量吗
难道不应该arr[i]访问吗
同一个符号有不同的用法,这很正常
好比同样的 * ,有乘法和指针两个作用,同样<<有算术移位和流操作
int*arr数组里的元素arr1,arr2,arr3的地址是连续存放的
这里设计到一个新概念:数组指针
将在下一站🚌讲解!
但是它们对应的各自的数组内数据并不连续
如:arr1和arr2这两个数组各自元素的地址并不连续
数组和指针变量的关系在于,数组名实际上是指向数组首元素的指针。在C/C++中,使用数组名来访问数组的元素是合法的,因为数组名本身就可以被解释为一个指针。
当我们定义一个数组时,编译器会为数组分配一段连续的内存,并返回指向数组首元素的指针。这个指针可以用来访问整个数组。
考虑以下的示例代码:
int* arr = new int[10];
arr[0] = 10;
在上面的代码中,我们使用new操作符动态分配了一个包含10个整数的数组,并将返回的指针存储在指针变量arr
中。我们可以使用arr[0]
来访问数组的第一个元素。
在这种情况下,arr
是一个指向整数的指针,而arr[0]
是通过指针访问数组第一个元素的方式。由于数组名本身可以被解释为指针,所以我们可以直接使用arr[i]
来访问整个数组的元素。
因此,对于你的问题,你不需要使用指针变量来访问数组,而是可以直接使用arr[i]
的方式来访问。