
传二维字符数组: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;
}