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



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

 

                                          

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

 

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

 

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

 

  

 
#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]

}

 

输出结果:

 

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

 

 

 

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

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

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

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

 

 

 

eg:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值