输出数组元素的方法(含指针)

具体实现看代码:

一维数组

#include<stdio.h>

int main()
{
	int a[5] = {1,2,3,4,5};
	int *p = a;
	for(int i=0;i<5;i++)
	{
		//p指向的是数组a的首地址,p+i取得数组a下一个元素的地址,*(p+i)取得元素
		printf("%d",*(p+i));
		//p指向的就是a的首地址,所以可以用a替换 
		printf("%d",*(a+i));
		//数组用下标输出元素的方法
		printf("%d",a[i]);
		printf("%d\n",p[i]);	 
	}
	return 0;
 } 

运行结果如图所示:

 二维数组

#include<stdio.h>

int main()
{
	int a[3][5] = {{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};
	int (*p)[5]= a;//注意这里p指向的是a的行首地址 
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<5;j++)
		{
			//p指向的是a的行首地址,p+i取得第i行地址,*(p+i)取得本行数组名,*(p+i)+j取得第i行的j列的地址,*(*(p+i)+j)取得第i行第j列的元素 
			printf("%d",*(*(p+i)+j));
			//由一维数组输出元素的方式可知如下写法
			printf("%d",(*(p+i))[j]); //用(*(p+i))取得第i行的地址,相当于a[i],(*(p+i))[j]相当于a[i][j] 
			printf("%d",*(p[i]+j));//用p[i]替换了*(p+i) 
			//数组用下标输出元素的方,与一维数组用法一致 
			printf("%d",a[i][j]);
			printf("%d\n",p[i][j]);
		}
	}
	return 0;
 } 

运行结果如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值