输入数组10个元素并输出(用指针指向数组)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main()
{
    int a[10], i;
    int* p;
    for (i = 0; i < 10; i++)
        scanf("%d", a+i);            // &a[i] == a+i
    for (p = a; p < (a + 10); )       // 数组名a代表首元素地址值
        printf("%d ", *p++);                // 等同于 *(p++)
                                 // p+1是指向下一个元素
                                //指针-指针 p1-p2是中间相差元素个数(必须都指向同一数组)
                                //没有指针+指针,无意义
    return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用指针变量来输入输出a数组10个元素。具体实现方法如下: 1. 定义一个指向整型数组指针变量p,指向a数组的首地址。 2. 使用循环结构,依次输入a数组10个元素,可以使用指针变量p来访问数组元素,例如:*p = 1; p++; 表示输入第一个元素为1,指针变量p指向下一个元素。 3. 使用循环结构,依次输出a数组10个元素,同样可以使用指针变量p来访问数组元素,例如:printf("%d ", *p); p++; 表示输出第一个元素并换行,指针变量p指向下一个元素。 下面是具体代码实现: int a[10]; // 定义整型数组a,长度为10 int *p = a; // 定义指向整型数组指针变量p,指向a数组的首地址 // 输入a数组10个元素 for (int i = ; i < 10; i++) { printf("请输入第%d个元素:", i+1); scanf("%d", p); p++; // 指针变量p指向下一个元素 } p = a; // 指针变量p重新指向a数组的首地址 // 输出a数组10个元素 printf("a数组10个元素为:\n"); for (int i = ; i < 10; i++) { printf("%d ", *p); p++; // 指针变量p指向下一个元素 } 输出结果如下: 请输入第1个元素:1 请输入第2个元素:2 请输入第3个元素:3 请输入第4个元素:4 请输入第5个元素:5 请输入第6个元素:6 请输入第7个元素:7 请输入第8个元素:8 请输入第9个元素:9 请输入10个元素:10 a数组10个元素为: 1 2 3 4 5 6 7 8 9 10 ### 回答2: 在C语言,通过指针变量可以实现对数组输入输出。首先,需要定义一个数组a和一个指向数组a的指针变量p,代码如下: ```c int a[10]; // 定义数组a int *p = a; // 定义指针变量p指向数组a的首个元素 ``` 然后,可以通过指针变量p输入数组a的10个元素,代码如下: ```c for(int i = 0; i < 10; i++) { printf("请输入a[%d]的值:", i); scanf("%d", p+i); } ``` 在输入每个元素时,利用指针变量p访问a数组的对应元素,即p+i,其i为数组的下标。每输入一个元素指针变量p的值会自动加上一个整型的偏移量,指向下一个数组元素。 最后,通过指针变量p可以输出数组a的10个元素,代码如下: ```c printf("输出a数组10个元素:"); for(int i = 0; i < 10; i++) { printf("%d ", *(p+i)); // 使用指针变量p输出a数组元素 } ``` 在输出每个元素时,同样利用指针变量p访问a数组的对应元素,即p+i,然后使用间接寻址符*将指针变量p对应的地址所存储的值取出来输出。 综上,通过指针变量可以方便地实现对数组输入输出使用指针变量可以提高代码的效率和可读性,尤其是当数组元素较多时。 ### 回答3: 在C语言指针变量可以用来访问和操作数组元素,它可以通过指针变量输入输出数组的各个元素,实现对数组的快速、灵活的处理方式。下面是一种通过指针变量输入输出a数组10个元素的方法: 首先,定义一个数组a并初始化其内容,代码如下: ``` int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; ``` 接着,定义一个指针变量p,用于指向数组a的首地址,代码如下: ``` int *p = a; ``` 这里使用指针变量p将数组a的首地址赋值给它。 然后,通过for循环遍历数组a的各个元素,利用指针变量p作为数组下标,输入输出数组的值,示例代码如下: ``` for (int i = 0; i < 10; i++) { printf("a[%d] = %d\n", i, *(p + i)); //输出a数组的每个元素 scanf("%d", p + i); //通过指针变量输入a数组的每个元素 } ``` 在以上代码,用指针变量p作为数组下标来输出a数组的每个元素,并且通过指针变量p来输入a数组的每个元素。 最后,可以再次使用for循环遍历数组a的各个元素,利用指针变量p作为数组下标,输出修改后的a数组的值,示例代码如下: ``` for (int i = 0; i < 10; i++) { printf("a[%d] = %d\n", i, *(p + i)); //输出修改后的a数组的每个元素 } ``` 在以上代码,通过指针变量p作为数组下标输出修改后的a数组的每个元素。 这样,就通过指针变量实现了对a数组输入输出操作。利用指针变量可以快速、灵活地访问和操作数组元素,可以提高程序的效率和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值