c语言 通过指针来遍历数组 的例子
时间: 2023-08-08 11:05:00 浏览: 41
C语言中可以通过指针来遍历数组。下面是一个例子:
```
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr; // 将指针p指向数组arr的第一个元素
for (int i = 0; i < 5; i++) {
printf("%d ", *p); // 输出指针p所指向的元素
p++; // 指针p向后移动一位
}
return 0;
}
```
在上面的例子中,我们定义了一个整数数组`arr`,并将指针`p`指向数组的第一个元素。然后,我们使用一个循环来遍历整个数组,每次输出指针`p`所指向的元素,并将指针`p`向后移动一位。这样,指针`p`就可以遍历整个数组。注意,在遍历数组时需要确保指针`p`不越界。
相关问题
如何使用指针遍历数组?
使用指针遍历数组可以通过指针变量来访问数组元素,以下是C语言的一个例子:
```c
#include <stdio.h>
int main() {
int arr[8] = {1, 2, 3, 4, 5, 6, 7, 8};
int *p;
for ( = &(arr[0]); p < &(arr[7]); p++) {
("%d", *p);
}
return 0;
}
```
这个例子,我们定义了一个整型数组arr,然后定义了一个指向整型的指针变量p,将p指向数组的第一个元素arr,然后通过循环遍历数组,每次将指针p向后移动一个位置,直到指针p指向数组的最后一个元素arr为止。在循环中,我们使用*p来访问指针p所指向的数组元素的值,并将其打印出来。
c语言中数组指针和指针数组区别并举代码例子
在C语言中,数组指针和指针数组是两种不同的概念。下面我将为您提供一些代码例子来说明它们之间的区别。
1. 指针数组示例:
```c
#include <stdio.h>
int main() {
int a = 10, b = 20, c = 30;
int *arr[3]; // 声明一个指针数组
arr[0] = &a; // 数组的第一个元素指向变量a
arr[1] = &b; // 数组的第二个元素指向变量b
arr[2] = &c; // 数组的第三个元素指向变量c
for (int i = 0; i < 3; i++) {
printf("arr[%d] = %d\n", i, *arr[i]); // 打印数组元素的值
}
return 0;
}
```
输出结果:
```
arr[0] = 10
arr[1] = 20
arr[2] = 30
```
在上述代码中,我们声明了一个指针数组`arr`,其中的每个元素都是一个指向`int`类型的指针。然后,我们将变量`a`、`b`和`c`的地址分别赋给了数组的元素。最后,通过循环遍历数组,并使用解引用操作符`*`来获取数组元素所指向的值。
2. 数组指针示例:
```c
#include <stdio.h>
int main() {
int arr[3] = {10, 20, 30};
int (*ptr)[3]; // 声明一个数组指针
ptr = &arr; // 数组指针指向数组arr的地址
for (int i = 0; i < 3; i++) {
printf("(*ptr)[%d] = %d\n", i, (*ptr)[i]); // 通过数组指针访问数组元素的值
}
return 0;
}
```
输出结果:
```
(*ptr)[0] = 10
(*ptr)[1] = 20
(*ptr)[2] = 30
```
在上述代码中,我们声明了一个数组`arr`,并初始化了它的元素。然后,我们声明了一个数组指针`ptr`,并将数组`arr`的地址赋给了它。通过在指针前加上括号,我们可以使用解引用操作符`*`来访问数组元素的值。
总结来说,指针数组是一个数组,其中的每个元素都是指针,而数组指针是一个指向数组的指针。它们在使用方法和语义上有所区别。