输入什么输出什么
#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;
}
输出结果
逆序输入输出
#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;
}
输出结果