关闭

数据结构_P4

121人阅读 评论(0) 收藏 举报
分类:
# 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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:55691次
    • 积分:1695
    • 等级:
    • 排名:千里之外
    • 原创:128篇
    • 转载:43篇
    • 译文:0篇
    • 评论:10条