char 二维数组_二维数组与数组指针

0dab5e26526f59c2cf665e7cb07042a8.png

传二维字符数组:char str[5][10]

fun(char (*p)[10],int len)

fun(char p[][10],int len)

环境:rhel32位,int *占四个字节

#include <stdio.h>
#include <string.h>

int main(int argc,char **argv)
{
	int arr[2][3];
	int i,j;
	//初始化
	memset(arr,0,sizeof(arr));
	//赋值
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
		{
			arr[i][j]=2*j+1;
		}
	}
	//打印V
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
		{
			printf("arr[%d][%d]:%dt",i,j,arr[i][j]);
		}
	}
	printf("n");
	//用数组指针操作二维数组
	int (*parr)[3];
	int *p;
	for(parr = arr,i=0;parr < arr+2;parr++,i++)
	{
		for(p = (*parr),j=0;p < *parr+3;p++,j++)
		{
			
			*p = 2*j;
		}
	}
	//打印
	for(parr = arr,i=0;parr < arr+3 && i<2;parr++,i++)
	{
		for(p = (*parr),j=0;p < *parr+3 && j<3;p++,j++)
			printf("arr[%d][%d]:%dt",i,j,*p);
	}
	printf("n");
	//用一级指针操作二维数组
	int *q=NULL;
	for(p = (int *)arr,i=0;p < (int *)arr+6 && i<2;p+=3,i++)
	{
		for(q = p;q < p+3;q++)
		{
			*q = 2*i+1;
		}
	}
	//打印
	for(p = (int *)arr,i=0;p < (int *)arr+6 && i<2;p+=3,i++)
	{
		for(q =p,j=0;q <p+3 && j<3;q++,j++)
		{
			printf("arr[%d][%d]:%dt",i,j,*q);
		}
	}
	printf("n");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值