数组和指针

一.一维数组

1.格式:数据类型  数组名 [数组大小]={初始值列表}
例:int a[5};
说明:

(1)元素类型名定义数组中每个元素的类型

(2)数组名的命名规则同变量名一合法的标识符

(3)[ ]中的数组长度表示该数组中包含的元素个数。应为常量表达式(常量和符号常量)不允许有变量

(4)内存大小=数组大小 x sizeof(数据类型)

(5)像简单变量一样,数组元素必须先定义后引用。

2.使用const声明数组

有时需要把数组设置为只读。这样,程序只能从数组中检索值,不能吧新值写入数组。要创建只读数组,应该用const声明和初始化数组。

3.给数组元素赋值

声明数组后,可以借助数组下标(或索引)给数组元素赋值。

4.数据边界

使用数组时,要防止数组下标超出边界。也就是说,必须确保下标是有效的值。例如,假设有下面的声明:

int  doofi [20];

那么在使用该数组时,要确保程序中使用数组下标在0~19的范围内。编译器 不会检查数组下标是否使用得当。

二.二维数组

格式: 数据类型 数组名 [行数] [列数]={初始值列表 };
例:int c[3][10]

说明:
(1)数组名的命名规则同变量名一合法的标识符

(2)行数、列数分别表示二维数组应有多少行、多少列。即:行数代表第一维下标的长度,列数代表第二维下标的长度。行数、列数应为常量表达式(常量和符号常量),不允许是变量。
(3)内存大小=行数x 列数 x sizeof(数据类型)

(4)像简单变量一样,数组元素必须先定义后引用

(5)二维数组可以看作是一种特殊的一维数组

格式:数据类型  数据名 [行数] [列数] = {初始值列表}

用 { } 将每行元素括起来,对部分元素赋初值

语法格式:数组名 [行下标] [列下标]

1)下标为所访问的数据b元素在数组中的行和列的位置序号(均从0开始编号)
2)行下标的有效范围为:0口列下标的有效范围为:
        0 ~ 行数- 1
        0 ~ 列数- 1

6.const的其他内容

(1)指向const 的指针不能用于改变值。

(2)指针赋值和const需要注意:

首先,把const数据或非const 数据的地址初始化为指向const 的指针或为其赋值是合法的;其次,只能把const数据的地址赋给普通指针。

三,指针和多维数组

1.假设有下面的声明:

int  zippo  [4] [2];

然后数组名zippo是该数组首元素的地址。

(1)因为zippo是数组首元素的地址,所以zippo的值和&zippo[0]的值相同。

(2)给指针或地址加1,其值会增加对应类型大小的数值。

(3)解引用一个指针(在指针前使用*运算符)或在数组名后使用带下标的 [] 运算符。得到解引用对象代表的值。

2.指向多维数组的指针

int  (*   pz)[2];   //pz指向一个内含两个int类型值的数值

int  *pax [2]; //pax是一个内含两个指针元素的数组,每个元素都指向 int 的指针

由于[]的优先级高,先于pax结合,所以pax成为一个内含两个元素的数组。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值