数组初始化 *[]
*和[]的作用是不一样的。
*是指指针,[]中括号是指一个数值的list。
见下面例子
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
int* a = new int[20];
int b[] = new int[20]; // 错误 这个应该是一个固定的int数组,后边应该用list初始化,而不是用new
int* c = {4, 5, 6}; // 错误 这个是一个int指针,后边应该是new的内存地址,而不是一个初始化list
int d[] = {1, 2, 3, 4};
char* e = new char[20];
char f[] = new char[20]; // 错误
char* g = {'1', '2', '3'}; // 错误
char h[] = {'1', 'a', '2'};
// 所以字符串数组应该像下面这种写法
char* i[] = {"1231223", "dddd"};
// 二维数组的话就是两个括号,此时第二个中括号需要给定里面内容的个数
char* j[][2] = {{"key1", "value1"}, {"key2", "value2"}};
// string的一维数组
string k[] = {"hello", "aaa", "bbb"};
// string的二维数组
string l[][2] = {{"111", "222"}, {"222", "333"}};
// 指针的数组就是
char** m = new char*[10];
// 总结就是
// 类型指针 变量名 = new 类型[大小];
// 类型 变量名[] = {list初始化 类型的东西};
return 0;
}