# include <stdio.h>
/*
用指针输出数组元素
自己写的函数是Array, 老师的是Array1
2016年6月1日13:28:52
*/
void Show_Array1(int *p) //a的地址传递给了p指针变量,*p代表a[0];因此p现在是数组第一个元素的地址
{
for(int i=0; i<5;i++)
printf("%d\n", *(p+i)); //输出数组每个数值
//注意!! *p == p[0] == a[0] ; *(p+i) = p[i] = a[i]
/*
所以这里才是重点:应该这样写
for(int i=0; i<5; i++)
printf("%d\n", p[i]); //以后数组形参传递就这样写,f(a),void f(int *p),则p[i] == a[i];
*/
}
void Show_Array(int a[]) //自己写的这个欠妥,因为形参不是数组,而是a地址的传递
{
for(int i=0; i<5; i++) //这里的5是数组中元素的个数,那么怎么求数组中元素的个数呢?不能用sizeof
//元素个数 = sizeof(a)/sizeof(int)
{
printf("%d\n",a[i]);
}
}
int main(void)
{
int a[5] = {1,2,3,4,5};
// Show_Array(a); //这里注意:a是地址值 ==等价于 &a[0],所以传递给形参时可以直接int a[];
//而更本质的传递形参应该是指针! a ==>(int *p):p指向a[]
Show_Array1(a);
// int y = sizeof(a)/sizeof(int);
// printf("%d\n", y); //结果符合预料, y == 5,计算数组元素个数这么计算
// printf("%d\n", sizeof(a));//其表示变量所占字节长度:sizeof(a) == sizeof(int*5)==20
return 0;
}
数据结构_P4
最新推荐文章于 2022-07-01 16:12:14 发布