数组 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++不检查数组下标是否越界!如果下标越界,程序很有可能会崩溃!
|