指针引用数组元素

一、小结

1.一维数组:(eg:int a[5],*p;)
a+nIIp+n---->表示数组元素a[n]的地址;
(a+n)II(p+n)---->表示数组中第n个元素;

2.二维数组(int a[3][5],p;)
&a[i][j]=
(a+i)+j; //表示第i行第j列元素的地址;
a[i][j]=((a+i)+j)=*(a[i]+j) //示第i行第j列元素;

//输出二维数组中的指定行数
#include<stdio.h> 
int main(){
	int a[3][5],i,j;
	int (*p)[5];       //定义长度为5的指针型数组 
	p=&a[0];          //取第0行的首地址 
	printf("please input:\n");
	for(i=0;i<3;i++){
		for(j=0;j<5;j++){
			scanf("%d",(*(p+i))+j);
		}
	} 
	p=&a[2];
	printf("the trird line:\n");
	for(j=0;j<5;j++){
		printf("%5d",*((*p)+j));
	} 
	printf("\n");
}码片

Plus (`・ω・´) 补充案例

二、二维数组元素的引用

1.((a+i)+j)-------->表示第i行,第j列的元素。
2.*(a[i]+j) --------->表示第i行,第j列的元素。

#include<stdio.h>
	int main(){
	int a[3][5],i,j;
	printf("please input:\n");
	for(i=0;i<3;i++){
		for(j=0;j<5;j++){
		//对i行j列的元素赋值 
			//scanf("%d",*(a+i)+j);
			scanf("%d",a[i]+j);   
		}
	} 
	printf("The second line is:\n");
		for(j=0;j<5;j++){
			printf("%5d",*(*(a+1)+j));  //输出第二行中的元素 
			//printf("%5d",*(a[1]+j));
		}
		printf("\n");
} 

三、字符串与指针

==访问字符串 ==
1.用字符数组存放并进行操作;
2.使用字符指针指向字符串;

#include<stdio.h>
main(){
	int i;
	char *month[]={
		"January",
		"February",
		"March",
		"April",
		"May",
		"June",
		"July",
		"August",
		"September",
		"October",
		"November",
		"December"
	};
	for(i=0;i<12;i++){
		printf("%s\n",month[i]);
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值