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

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

输入什么输出什么

#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

相关文章
|
2月前
使用指针访问数组元素
【10月更文挑战第30天】使用指针访问数组元素。
43 3
|
2月前
|
存储 程序员 编译器
C 语言数组与指针的深度剖析与应用
在C语言中,数组与指针是核心概念,二者既独立又紧密相连。数组是在连续内存中存储相同类型数据的结构,而指针则存储内存地址,二者结合可在数据处理、函数传参等方面发挥巨大作用。掌握它们的特性和关系,对于优化程序性能、灵活处理数据结构至关重要。
|
2月前
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
2月前
|
容器
在使用指针数组进行动态内存分配时,如何避免内存泄漏
在使用指针数组进行动态内存分配时,避免内存泄漏的关键在于确保每个分配的内存块都能被正确释放。具体做法包括:1. 分配后立即检查是否成功;2. 使用完成后及时释放内存;3. 避免重复释放同一内存地址;4. 尽量使用智能指针或容器类管理内存。
|
2月前
|
存储 NoSQL 编译器
C 语言中指针数组与数组指针的辨析与应用
在C语言中,指针数组和数组指针是两个容易混淆但用途不同的概念。指针数组是一个数组,其元素是指针类型;而数组指针是指向数组的指针。两者在声明、使用及内存布局上各有特点,正确理解它们有助于更高效地编程。
|
2月前
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
66 4
|
2月前
使用指针访问数组元素
【10月更文挑战第31天】使用指针访问数组元素。
54 2
|
3月前
|
存储 C语言 C++
如何通过指针作为函数参数来实现函数的返回多个值
在C语言中,可以通过将指针作为函数参数来实现函数返回多个值。调用函数时,传递变量的地址,函数内部通过修改指针所指向的内存来改变原变量的值,从而实现多值返回。
|
2月前
|
算法 索引
单链表题+数组题(快慢指针和左右指针)
单链表题+数组题(快慢指针和左右指针)
43 1
|
3月前
|
存储 搜索推荐 C语言
如何理解指针作为函数参数的输入和输出特性
指针作为函数参数时,可以实现输入和输出的双重功能。通过指针传递变量的地址,函数可以修改外部变量的值,实现输出;同时,指针本身也可以作为输入,传递初始值或状态。这种方式提高了函数的灵活性和效率。