C语言数组复习

数组类型:该类型的变量空间中连续顺序的存放着多个同类型元素

N维数组:
定义语句语法:
元素类型(T)  N维数组名[M1][M2]......[Mn]={ {} ,{},{...N层嵌套...} };
1.sizeof
    sizeof(N维数组名)=M1*M2*...*Mn*sizeof(T)
2.N维数组定义的作用
    3个基本作用+N个额外作用
    #3个基本作用:
    1、给该数组分配sizeof(N维数组名)个字节的内存空间
    2、该空间命名为N维数组名
    3、该空间中每sizeof(T)个字节面熟一个T类型的元素
    #N个额外作用
    1、相当于定义M1个N-1维数组,他们的名字叫做 :N维数组名[第一维下标X1]   X1----->[0,M1-1]
    2、相当于定义M1*M2个N-2维的数组,他们的名字叫做:N维数组名[第一维下标X1] [第二维下标X2] X2---->[0,M2-1]
    ............
    N-1、相当于定义M1*M2*....*Mn-1个一维数组,他们的名字叫做:N维数组名[第一维下标X1] [第二维下标X2]...[倒数第二维下标]
    N、相当于定义M1*M2*...*Mn-1*Mn个元素的变量,他们的名字叫做:N维数组名[第一维下标X1] [第二维下标X2]..[倒数第二维下标] [最后一维下标]
    
    #数组的维度:数组嵌套的层数,对N维数组进行等分的轮数
    


    

 3、支持运算和常用操作代码

表达式按其使用性质分为两类

(1)、左值表达式----用法:

该表达式的运算结果其本质是一块内存空间的名字

<1> 左值表达式= ....

<2>变量名=其他表达式   运算符   左值表达式

(2)、右值表达式----用法:

<1>变量名=其他表达式   运算符   右值表达式

不可以:右值表达式=....(错误错误错误)

针对整个N维数组空间的运算

&N维数组名

sizeof(N维数组名)

N维数组名=.....(错误用法)

针对N维数组中元素的运算:

(1)、针对名称为N维数组名[第一维下标]  的N-1维数组的运算  

等同于同类型的N-1维数组的运算

即 N维数组名[第一维下标]----其本质是一个N-1维数组的数组名        

(2)、针对名称为N维数组名[第一维下标] [第二维下标]  的N-2维数组的运算  

等同于同类型的N-2维数组的运算

即 N维数组名[第一维下标] [第二维下标]----其本质是一个N-2维数组的数组名     

(3)、针对名称为N维数组名[第一维下标] [第二维下标]...[最后一维下标]  的元素的运算  

等同于同类型变量的运算

即 N维数组名[第一维下标] [第二维下标]...[最后一维下标]----其本质是一个元素类型的变量名

(4)、N维数组中所有元素的遍历:

N层嵌套循环

4、N维数组类型作为函数形参类型

        C语言从函数调用时传参的效率(空间效率和时间效率)考虑,并不将其看待成数组,而将其看待成一种指向N-1维数组的 数组指针(如果N为1,则其就是指向元素类型的一级指针)

        因此,N维数组类型作为函数参数类型的特点等同于 同类指针类型作为函数形参的特点。

5、N维数组类型作为函数返回值类型

        任意数组类型都不可以作为函数的返回值类型

口诀:

总决:N维数组总可以看待成一维数组,这个一维数组中的元素类型为N-1维数组类型

分决:

        1、表达式中单独书写N维数组名时-----此时N维数组名是其下标为0的元素的空间首地址

        2、N维数组类型作为函数形参类型时----此时该形参是指向数组中元素的指针

另一种理解:

N维数组名在表达式中单独书写(&、sizeof除外)时,等价于 下标为0的那个N-1维数组所在空间的首地址。

N维数组类型作为函数形参类型时,等价于 指向N-1维数组的数组指针

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值