用指针实现一位数组的输入与输出
时间: 2024-05-22 11:16:32 浏览: 10
#include <stdio.h>
int main() {
int arr[5];
int *p = arr; //定义一个指向数组的指针,指向数组的第一个元素
printf("请输入5个整数:\n");
for(int i=0; i<5; i++) {
scanf("%d", p+i); //使用指针输入数组元素
}
printf("数组元素为:\n");
for(int i=0; i<5; i++) {
printf("%d ", *(p+i)); //使用指针输出数组元素
}
return 0;
}
相关问题
定义一个数组,实现数组的输入和输出,再使用指针访问的方式输出C语言
好的,以下是一个定义数组、输入输出数组、使用指针访问数组并输出的简单C语言代码示例:
```c
#include <stdio.h>
#define ARRAY_SIZE 5
int main() {
int arr[ARRAY_SIZE];
int *ptr = arr;
// 输入数组
printf("请输入%d个整数:\n", ARRAY_SIZE);
for (int i = 0; i < ARRAY_SIZE; i++) {
scanf("%d", &arr[i]);
}
// 输出数组
printf("数组中的元素为:");
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 使用指针访问数组并输出
printf("使用指针访问数组:");
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", *ptr);
ptr++;
}
printf("\n");
return 0;
}
```
这个程序首先定义了一个数组`arr`,大小为`ARRAY_SIZE`,并且定义了一个指向`arr`数组的指针`ptr`。使用`scanf`函数输入`ARRAY_SIZE`个整数到数组中,然后使用`for`循环遍历数组并输出每个元素。接着,使用指针访问数组并输出,这里使用了一个常规的指针遍历数组的方法,即使用`*ptr`访问指针所指向的元素,然后将指针向后移动一位,以此访问数组中的每个元素。
这个例子只是一个简单的数组定义、输入输出和指针访问演示,实际应用中可能需要更复杂的数组操作。
一维数组的输入输出查找删除
1. 一维数组的输入:
一维数组的输入可以通过循环输入每个元素,也可以通过输入一串数字并以空格分隔的方式输入整个数组。
循环输入:
```c++
int arr[10];
for(int i=0; i<10; i++){
cin >> arr[i];
}
```
输入一串数字并以空格分隔:
```c++
int arr[10];
for(int i=0; i<10; i++){
cin >> arr[i];
}
```
2. 一维数组的输出:
一维数组的输出可以通过循环输出每个元素,也可以通过使用指针输出整个数组。
循环输出:
```c++
int arr[10];
for(int i=0; i<10; i++){
cout << arr[i] << " ";
}
```
使用指针输出:
```c++
int arr[10];
int *p = arr;
for(int i=0; i<10; i++){
cout << *(p+i) << " ";
}
```
3. 一维数组的查找:
一维数组的查找可以通过循环遍历数组,找到目标元素后返回它的下标位置。也可以使用STL中的find函数来查找。
循环遍历:
```c++
int arr[10];
int target;
for(int i=0; i<10; i++){
if(arr[i] == target){
return i;
}
}
```
使用STL中的find函数:
```c++
int arr[10];
int target;
auto it = find(arr, arr+10, target);
if(it != arr+10){
return it - arr;
}
```
4. 一维数组的删除:
一维数组的删除可以通过将目标元素后面的元素全部往前移动一位,然后将数组的长度减一。也可以使用STL中的erase函数来删除。
移动元素:
```c++
int arr[10];
int target;
for(int i=0; i<10; i++){
if(arr[i] == target){
for(int j=i; j<9; j++){
arr[j] = arr[j+1];
}
arr[9] = 0;
break;
}
}
```
使用STL中的erase函数:
```c++
vector<int> arr(10);
int target;
auto it = find(arr.begin(), arr.end(), target);
if(it != arr.end()){
arr.erase(it);
}
```
相关推荐
![dll](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)