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

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

输入什么输出什么

#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

相关文章
|
11天前
|
存储 C语言 C++
如何通过指针作为函数参数来实现函数的返回多个值
在C语言中,可以通过将指针作为函数参数来实现函数返回多个值。调用函数时,传递变量的地址,函数内部通过修改指针所指向的内存来改变原变量的值,从而实现多值返回。
|
8天前
|
算法 索引
单链表题+数组题(快慢指针和左右指针)
单链表题+数组题(快慢指针和左右指针)
15 1
|
11天前
|
存储 搜索推荐 C语言
如何理解指针作为函数参数的输入和输出特性
指针作为函数参数时,可以实现输入和输出的双重功能。通过指针传递变量的地址,函数可以修改外部变量的值,实现输出;同时,指针本身也可以作为输入,传递初始值或状态。这种方式提高了函数的灵活性和效率。
|
17天前
|
存储
如何使用指针数组来实现动态二维数组
指针数组可以用来实现动态二维数组。首先,定义一个指向指针的指针变量,并使用 `malloc` 为它分配内存,然后为每个子数组分配内存。通过这种方式,可以灵活地创建和管理不同大小的二维数组。
|
17天前
|
存储
如何通过指针数组来实现二维数组?
介绍了二维数组和指针数组的概念及其区别,详细讲解了如何使用指针数组模拟二维数组,包括定义与分配内存、访问和赋值元素、以及正确释放内存的步骤,适用于需要动态处理二维数据的场景。
|
17天前
|
存储 算法 C语言
C语言:什么是指针数组,它有什么用
指针数组是C语言中一种特殊的数据结构,每个元素都是一个指针。它用于存储多个内存地址,方便对多个变量或数组进行操作,常用于字符串处理、动态内存分配等场景。
|
23天前
魔法指针 之 二级指针 指针数组
魔法指针 之 二级指针 指针数组
16 1
|
28天前
利用指针函数
【10月更文挑战第2天】利用指针函数。
16 1
|
1月前
|
算法 搜索推荐 C语言
【C语言篇】深入理解指针4(模拟实现qsort函数)
【C语言篇】深入理解指针4(模拟实现qsort函数)
21 2
|
26天前
|
存储
一篇文章了解区分指针数组,数组指针,函数指针,链表。
一篇文章了解区分指针数组,数组指针,函数指针,链表。
17 0