本文共 780 字,大约阅读时间需要 2 分钟。
C风格的字符串有两种:
\0
的字符数组注意,结束符就是\0
,值为0,也就是NULl。有结束符的字符序列才可以称为字符串。
字符数组的初始化可以使用字符常量或者常量字符串进行初始化:
而且在初始化的时候要注意,结束符也是占空间的。
结束符在字符串的处理中相当重要!!!这是因为许多的字符串处理函数都是以NULL为结尾处理字符串的。
二维数组的初始化分为两种:
在声明初始化的时候,只有第一维是可以省略的,这个规则适用于更高维数的数组。二维数组来说就是,列数不可省略,如下:
首先,所有数组在内存中都是线性存储的,对于二维数组也是,但二维数组的线性存储分为两种情况:
C/C++中默认按照行优先存储,可以在逻辑上转换为一维数组,即:
比如如下面这些题:
还有,在将二维数组转换为一维数组的时候,切记要通过指针的形式来做,不要凭感觉去,因为数组下标是从0开始的,很可能出现失误,如下:
注意,当动态声明数组的时候,数组相当于一个链表,因为数组的a[k]都是一个int*,所以动态申请的二维数组的元素不是连续的,所以我才说相当于一个链表。
注意释放的时候,先释放a[i]
,再释放a。
转载地址:http://exwzi.baihongyu.com/