pta指针输入/输出一维数组元素
时间: 2023-07-20 17:09:58 浏览: 164
以下是一个示例程序,演示了如何使用指针输入/输出一维数组元素:
```
#include <stdio.h>
#define MAX_N 100
int main() {
int a[MAX_N], n, i;
int *p;
scanf("%d", &n);
// 输入数组元素
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 输出数组元素(方法一)
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
// 输出数组元素(方法二)
for (p = a; p < a + n; p++) {
printf("%d ", *p);
}
printf("\n");
return 0;
}
```
在这个程序中,我们定义了一个数组`a`和一个指针`p`,用于输入/输出数组元素。我们先使用`scanf`函数读取数组的长度`n`,然后使用循环依次输入数组元素。在输出数组元素时,我们提供了两种方法:
1. 使用下标访问数组元素,逐个输出。
2. 使用指针遍历数组元素,逐个输出。
方法一比较直观,但需要记住数组的下标。方法二则通过指针来访问数组元素,更加灵活。需要注意的是,指针`p`在遍历数组元素时,每次需要加上数组中一个元素的大小(即`sizeof(int)`)。
相关问题
通过指针修改一维数组元素的值pta
可以通过以下方式使用指针修改一维数组元素的值:
```c
int arr[5] = {1, 2, 3, 4, 5};
int *pta = arr; // 指向数组首元素的指针
*(pta + 2) = 10; // 修改第三个元素的值为 10,即 arr[2] = 10;
// 输出数组的元素
for (int i = 0; i < 5; i++) {
printf("%d ", *(pta + i));
}
```
这段代码中,首先定义了一个长度为5的一维数组 `arr`,然后定义了一个指向数组首元素的指针 `pta`,将其指向数组的首地址。通过指针 `pta` 访问数组元素的方式是 `*(pta + i)`,其中 `i` 表示数组下标的偏移量。因此,`*(pta + 2)` 表示访问第三个元素的地址,将其值修改为 10。最后通过循环遍历数组元素,并用 `printf` 函数输出数组的值。
指针指向二维数组PTA
以下是指针指向二维数组的示例代码:
```c
#include <stdio.h>
int main()
{
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int (*p)[4] = arr; // 定义一个指向含有4个元素的一维数组的指针,指向arr的首地址
printf("%d\n", **p); // 输出1,等价于arr[0][0]
printf("%d\n", *(*p + 1)); // 输出2,等价于arr[0][1]
printf("%d\n", **(p + 1)); // 输出5,等价于arr[1][0]
printf("%d\n", *(*(p + 1) + 1)); // 输出6,等价于arr[1][1]
return 0;
}
```
阅读全文