本思维导图主要总结国家计算机等级考试二级C语言部分知识点二维数组和指针
树图思维导图提供 计算机考试知识点二维数组和指针思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 计算机考试知识点二维数组和指针思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:7c4ac5123be74d01e280253416662aed
计算机考试知识点二维数组和指针思维导图模板大纲
(1)二维数组a由若干个一维数组组成在C语言中定义的二维数组实际上是一个一维数组,这个一维数组的每个元素又是一个一维数组。
(2)二维数组名也是地址值常量
二维数组名同样也是一个存放地址常量的指针,其值为二维数组中第一个元素的地址。
以前面的数组a为例,数组名a的值与a[0]的值相同,只是其基类型为具有4个整型元素的数组类型。
二维数组名应理解为一个行指针。即a+0的值与a[0]的值相同,a+1的值与a[1]的值相同,a+2的值与a[2]的值相同。它们分别代表a数组中第1、第2、第3行的首.地.址.。
在表达式a+1中,数值1的单.位.应当是4×2个字节,而不是2个字节。
(3)二维数组元素的地址
二维数组元素的地址可以由表达式&a[i][j]求得,也可以通过每行的首地址来表示。
以上二维数组a中,每个元素的地址可以通过每行的首地址a[0]、a[1]、a[2]等来表示。
若有以下定义:inta[3][4],i,j;,且0≤i<3、0≤j<4,则a数组元素可用5.种.表.达.式.来引用。
【表达1】a[i][j]
【表达2】*(a[i]+j)
【表达3】*(*(a+i)+j)
【表达4】(*(a+i))[j]
【表达5】*(&a[0][0]+4*i+j)
引用数组元素时应注意几点:
①在表达式2的表达式*(a[i]+j)中,因为a[i]的基类型为int,j的位移量为2×j字节;
②在表达式3的表达式*(*(a+i)+j)中,a的基类型为4个元素的数组,i的位移量为4×2×i字节,而*(a+i)的基类型为int,j的位移量为2×j字节;
③在表达式4中,*(a+i)外的一对圆括号不可少;
④在表达式5中,&a[0][0]+4*i+j代表了数组元素a[i][j]的地址,通过间址运算符(*)号,表达式*(&a[0][0]+4*i+j)代表了数组元素a[i][j]的存储单元。
若有定义:int*p[3],a[3][2],i,j;
说明符*p[3]中,遵循运算符的优先级,一对“[]”的优先级高于“*”号,因此p首先与[]结合,构成p[3],说明p是一个数组名,系统将为它开辟3个连续的存储单元
在它前面的星号(*)是说明数组p是指针类型,它的每个元素都是基类型为int的指针。若满足条件0≤i<3,是p[i]和a[i]的基类型相同,p[i]=a[i]是合法的赋值表达式。
树图思维导图提供 计算机考试知识点文件的读写思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 计算机考试知识点文件的读写思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:3addfcccb8839b09c49d9cf6c7c011d1
树图思维导图提供 计算机考试知识点文件指针思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 计算机考试知识点文件指针思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:3b7318d886411679e5e0eb18447fbd02