指针与数组在函数中输入实现逆序输出

简介: 指针与数组在函数中输入实现逆序输出

输入什么输出什么

#include <stdio.h>
void initarray(int *parr,int size)
{
    int i;
    for(i=0;i<size;i++)
    {
        printf("请输入第%d个元素的数据:\n",i+1);
        scanf("%d",parr++);//parr就是地址了(指针),就不用再取地址了
    }
}
void printarray(int *parr,int size)
{
    int i;
    for(i=0;i<size;i++)
    {
        printf("%d ",*parr++);//对地址(指针)取值,打出来
    }
}
int main()
{
    int arry[5];
    int size = sizeof(arry)/sizeof(arry[0]);
    initarray(arry,size);//arry 数组名就是数组地址、首元素地址
    printarray(&arry[0],size);//&arry[0]是取首元素地址与上面相同
    return 0;
}

输出结果

20f70847fe1f4367b378bdcbb6a1401d.png

逆序输入输出

#include <stdio.h>
void initarray(int *parr,int size)
{
    int i;
    for(i=0;i<size;i++)
    {
        printf("请输入第%d个元素的数据:\n",i+1);
        scanf("%d",parr++);//parr就是地址了(指针),就不用再取地址了
    }
}
/*
void revangearry(int *parr,int size)//将输入的数据进行逆序输出
{
    int i,j;
    int tmp;
    for(i=0;i<size/2;i++)
    {
        j = size-1-i;
        tmp = parr[i];
        parr[i] = parr[j];
        parr[j] = tmp;
    }
}
*/
//上面函数换种写法,更贴近与指针的写法
void revangearry(int *parr,int size)//将输入的数据进行逆序输出
{
    int i,j;
    int tmp;
    for(i=0;i<size/2;i++)
    {
        j = size-1-i;
        tmp = *(parr+i);//数组地址按照数组类型直接偏移,也是得到了与上面同等效果
        *(parr+i) = *(parr+j);//按照数组类型进行地址偏移,在相应地址进行更改了数值
        *(parr+j) = tmp;
    }
}
void printarray(int *parr,int size)
{
    int i;
    for(i=0;i<size;i++)
    {
        printf("%d ",*parr++);//对地址(指针)取值,打出来
    }
}
int main()
{
    int arry[5];
    int size = sizeof(arry)/sizeof(arry[0]);
    initarray(arry,size);//arry 数组名就是数组地址、首元素地址
    revangearry(arry,size);//逆序处理
    printarray(&arry[0],size);//&arry[0]是取首元素地址与上面相同
    return 0;
}

输出结果

536055fc63174460868929d3c0481791.png

相关文章
|
22天前
|
存储 编译器 C语言
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
|
29天前
|
搜索推荐 C语言 C++
【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析&&模拟实现3
【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析&&模拟实现
|
9天前
|
存储 人工智能 C++
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
29 1
|
10天前
|
存储 C语言
指针数组作为main函数的形参
指针数组作为main函数的形参
13 0
|
22天前
|
C语言
指针数组以及利用函数指针来实现简易计算器及typedef关键字(指针终篇)
指针数组以及利用函数指针来实现简易计算器及typedef关键字(指针终篇)
|
29天前
|
编译器
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)3
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
|
29天前
|
编译器
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)2
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
|
29天前
|
C语言
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)1
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
175 51
|
2月前
|
安全 C语言 C++
字符指针做函数参数
字符指针做函数参数
10 1
|
2月前
|
存储 程序员 C++
指针数组和多重指针
指针数组和多重指针
18 2