数组

[复制链接]
发表于 2023-12-31 10:34:57 | 显示全部楼层 |阅读模式
数组
1.  定义一个一维数组:inta[10];
这个数组一共10个元素,下标分别为0~9。访问某个元素时,直接用a加方括号,如a[5]。
2.  定义一个二维数组:intb[5][3]; 这个数组一共5×3=15个元素,分别是b[0][0]、b[0][1]、b[0][2]、b[1][0]……b[4][2]。
访问某个元素时要用两个方括号,如b[2][1]。
多维数组的定义和使用方法与此类似。
3.  数组名和元素的寻址:以上面的a、b为例
Ÿ  数组名是一个指针,指向整个数组第一个元素所在的地址。如a就是&a[0]、b就是&b[0][0]。
Ÿ  多维数组的本质是数组的数组,所以b[0]实际上是b[0][0]、b[0][1]……的数组名,b[0]就是
&b[0][0]。
Ÿ  在内存中,数组中每个元素都是紧挨着的,所以可以直接进行指针的运算。如a+3就是&a[3],**(b+1)
就是b[1][0],*(*(b+3)+2)就是b[3][2]。
Ÿ  在竞赛中要尽可能回避这些功能。
4.  字符串:
Ÿ  字符串实际上是char的数组。
Ÿ  字符串最后一位必须是'\0',否则会在进行输出、使用字符串函数时发生意外。
Ÿ  数组,包括字符串,不可以整体地赋值和比较。如果需要,应使用memcpy和memcmp(字符串是strcpy
和strcmp)。
5.  C++中数组的下标只能从0开始(当然可以闲置不用),并且int a[10]a的最后一个元素是a[9]
不是a[10]
6. C++不检查数组下标是否越界!如果下标越界,程序很有可能会崩溃!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表