\0
作为结束符。int arr11[4]; //声明一个长度为10的整型数组 int arr12[4] = { 1,2,3,4}; //初始化一个数组, 右边元素个数不能超过4个 int arr13[] = { 1,2,3,4,5 }; //初始化数组,根据初始化的元素来推断元素的个数。 //为数组进行赋值:由于数组会隐式的退化成指针 只能对每个元素进行赋值 arr11[0] = 1; arr11[1] = 1; arr11[2] = 1; arr11[3] = 1; arr11 = arr12; // 错误: 不能把一个数组直接赋值给另一个数组。 int arr14[] = arr12; // 错误: 不能用一个数组初始化另一个数组。 int *arr15 = arr12; // 正确: 定义一个指针来指向arr12数组,arr12代表一个指针 int num1 = 10; constexpr int num2 = 10; int arr16[num1]; //错误:num1 不是常量表达式 int arr17[num2]; //正确:num2 为常量表达式
int num = 4; int* arr21 = new int[num]; // 正确: 动态数组不需要 num 为常量表达式,且 num 可以为 0. int* arr22 = new int[4]; //new 一个长度为4的整型数组,未进行初始化。 int* arr23 = new int[4](); //new 一个长度为4的整型数组, 并将其所有值按默认值进行初始化, 整型数组默认值为0 int* arr24 = new int[4]{ 1,2,3,4 }; // 正确: 初始化元素个数必须小于等于指定要 new 的元素个数(在此即为4个元素)
动态数组的释放:销毁 new 的动态数组中的元素,并释放所分配的内存空间。数组中的元素按逆序销毁,即最后一个元素先被销毁,然后是倒数第二个,依次来销毁所有的元素。
// arr 必须指向一个动态分配的数组或为空 delete[] arr
由于 C 语言并没有字符串,而是使用以空字符\0
为终止符的字符数组来表示字符串,即常说的C-Style字符串,一般利用指针来操作这些字符串。
参考资料: