二维数组-C语言

1.二维数组定义时为变量(int brr[3][4]表示行为3列为4的数组)。
使用时为下标(brr[1][2]表示二维数组中1行2列的数。
注:二维数组中行优先

int main()
{
	int brr[3][4];
	int crr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
	int drr[3][4] = {1,2,3,4,5,6,7,8,9,10};//不够的格子用0补******较常用
	int err[][4] = {1,2,3,4,5,6,7,8,9,10};  //同上**一般
	int brr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};//定义时为长度
	brr[2][2] = 100;//使用时为下标
}

2.二维数组常用的运算
(1) //输出brr的内容

  for(int i=0;i<3;i++)
 {
    	for(int j=0;j<4;j++)
    {
    	printf("%d ",brr[i][j]);
    }
    	printf("\n");
}
    	Show(brr);

(2)//将brr矩阵逆置到crr中

int crr[4][3];
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			crr[j][i] = brr[i][j];
		}
	}

	printf("---------------\n");
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<3;j++)
		{
			printf("%d ",crr[i][j]);
		}
		printf("\n");
	}

	return 0;
}

3.一维数组和二维数组的数据类型

一维数组 int arr[4] 数据类型
arr int*x
arr+1 int*x
arr[0] int x
arr[0]+1 int x
二维数组 int brr[3][4] 数据类型
brr int(*x)[4] (数组指针)
brr+1 int(*x)[4] (*的优先级低于[])
brr[0] int *x(arr等同brr[0])
brr[0]+1 int *x
brr[0][0] int x

在这里插入图片描述
**4. 指针数组:存放指针的数组 , int *p[4]
数组指针:指向数组中的指针, int(*p)[4]
指针函数:返回为指针的函数, int f()
函数指针:指向函数的指针, int(f)()

5.arr:是数组名,表示数组首元素的地址
&arr:是数组的地址

/*
#include "stdio.h"
int main()
{
	int arr[10]={0};
	printf("arr+1=%p\n",arr+1);//00F3FD64
	printf("&arr+1=%p\n",&arr+1);//00F3FD88
	return 0;
}

//注:数组的地址+1,跳过整个数组的大小

发布了17 篇原创文章 · 获赞 4 · 访问量 1601

猜你喜欢

转载自blog.csdn.net/qq_43411866/article/details/88080000