指针指向数组时可以p[]
时间: 2023-09-16 12:02:01 浏览: 99
当我们谈到指针指向数组时,我们通常可以使用以下方式来操作指针:p[]。
在C语言中,数组名实际上就是指向数组的指针,它指向了数组的首地址。我们可以使用数组名来访问数组元素,也可以使用指针来访问数组元素。
对于一个指向数组的指针p,可以使用p[index]的形式来访问数组中的特定元素,其中index是数组中的元素位置。这种方式和使用数组名访问相应位置的元素一样。
例如,如果我们有一个数组arr和一个指向该数组的指针p:
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr;
我们可以使用数组名和指针来访问数组元素:
int x = arr[2]; // 使用数组名访问数组元素
int y = p[2]; // 使用指针访问数组元素
在上面的例子中,x和y都将等于3,因为它们都是访问数组arr的第三个元素。
因此,当我们使用指针指向数组时,可以使用p[]的形式来访问数组中的元素,这种方式和使用数组名访问元素是等价的。
相关问题
C语言中p指针指向数组,通过指针打印数组
假设有一个数组`arr`,可以通过定义一个指向该数组的指针`p`,并使用指针操作符`*`来访问数组元素。下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5}; // 定义数组
int *p = arr; // 定义指向数组的指针
for (int i = 0; i < 5; i++) {
printf("%d ", *(p + i)); // 使用指针访问数组元素
}
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
在这个示例中,我们使用指针`p`来访问数组`arr`中的元素。在循环中,我们使用指针操作符`*`和加法运算符`+`来访问数组的每个元素。 `(p + i)` 表示指针`p`加上偏移量`i`,得到数组中的第`i`个元素的地址,然后通过指针操作符`*`来访问该元素的值。
指针指向数组
指针和数组在C/C++中的关系非常密切,指针可以指向数组的第一个元素,也可以通过指针访问数组中的元素。以下是指针指向数组的基本用法:
1. 定义指向数组的指针变量
定义一个指向数组的指针变量,需要在指针变量名前加上数组名和下标0。例如,定义一个指向整型数组a的指针变量p,可以这样写:
```
int a[5] = {1, 2, 3, 4, 5};
int *p = &a[0];
```
或者直接这样写:
```
int a[5] = {1, 2, 3, 4, 5};
int *p = a;
```
2. 通过指针访问数组元素
可以通过指针变量加上下标的方式来访问数组中的元素。例如,访问a数组中的第三个元素,可以这样写:
```
int a[5] = {1, 2, 3, 4, 5};
int *p = a;
int b = *(p + 2);
```
这里的p+2表示指针p往后移动2个整型变量的长度,也就是指向了a数组中的第三个元素,然后通过解引用符*来获取该元素的值。
3. 指针作为函数参数传递数组
指针还可以作为函数参数来传递数组。例如,定义一个函数来计算数组中所有元素的和,可以这样写:
```
int sum(int *p, int n)
{
int s = 0;
for (int i = 0; i < n; i++)
{
s += *(p + i);
}
return s;
}
int main()
{
int a[5] = {1, 2, 3, 4, 5};
int s = sum(a, 5);
return 0;
}
```
这里的sum函数接收一个指向整型数组的指针p和数组的长度n,然后遍历数组中的所有元素,计算它们的和并返回。在main函数中,将a数组和数组长度5作为参数传递给sum函数。
阅读全文