c语言——指针与一维数组
程序员文章站
2022-07-07 11:37:58
...
/*
指针和一维数组
要访问另外一个函数中的数组,只需要知道这个数组的首地址和长度即可
*/
#include<stdio.h>
void show_Array(int* p,int len) //指针变量,长度;两个参数即可确定一个数组//
{
int i;
for(i=0;i<len;i++)
{
printf("%d\t",p[i]);
}
printf("\n-------------------------------------\n");
p[0]=-1; //p[0]==*p//
p[1]=-2; //p[1]==*(p+1)==*(a+1)==a[1]; //
p[2]=-3;
p[3]=-4;
p[4]=-5;
//p[i]就是主函数中的a[i]//
}
int main()
{
int i;
int a[5]={1,2,3,4,5};
int* p;
show_Array(a,5); //数组首元素是指针常量,保存数组的首地址//
for(i=0;i<5;i++)
{
printf("%d\t",a[i]);
}
printf("\n---------------------------------------\n");
p=&a[0]; //a[i]是*(a+i)是一个不同变量,要赋给指针的取地址
printf("%p\t%d\t%d\n",p,*p,a[0]);
p=&a[1];
printf("%p\t%d\t%d\n",p,*p,a[1]);
p=&a[2];
printf("%p\t%d\t%d\n",p,*p,a[2]); //int为4字节,a[i++]以4个字节为单位进行移动
return 0;
}
运行结果:
1 2 3 4 5
-------------------------------------
-1 -2 -3 -4 -5
---------------------------------------
000000000062FDF0 -1 -1
000000000062FDF4 -2 -2
000000000062FDF8 -3 -3
--------------------------------`