欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C语言】一维数组和二维数组

程序员文章站 2022-07-15 22:02:08
...


一维数组:类型名 数组名[元素个数],其中在书写时,元素个数可省略,系统会自行判断。

                                           【C语言】一维数组和二维数组

二维数组:本质上是以数组作为数组元素的数组,即“数组的数组”


类型说明符 数组名[常量表达式][常量表达式]


行优先原则   ega[ ][ ]   第一个中括号内容可省略,第二个不可以省略。


   【C语言】一维数组和二维数组

#include <stdio.h>
int main()
{
	int brr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
	int crr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	printf("%d,%d\n",&crr[0][4],&crr[1][0]);  //输出地址相同
	printf("%d\n",crr[1][5]);//10// == crr[2][1]

}

输出结果:【C语言】一维数组和二维数组

第一行输出地址相同,说明二维数组可以转化为一维数组


判断指针类型的时候,我们通过以下步骤:

1.先看优先级!有*是指针,看指针指向什么内容

2.[ ]是数组,要讨论数组的数据类型和长度

3.( )是函数,讨论参数列表和返回值


eg:

int (*p)[4]   //()优先级大于[],因此*先和p结合,后指向数组  //数组指针
int *p[4]   //[]优先级大于*,因此是保存指针的数组  //指针(的)数组
int (*p)()   //都是()优先级相同,从左往右看,是指向函数的指针  //函数指针
int *p()    //()优先级高,因此是指向指针的函数   //指针函数