1.デフォルトの初期化:
int arr[26] = {
1}; // 初始化为{1,0,0,。。。,0}
注:初期化リストは、指定された位置の要素のみを初期化し、他の位置はデフォルトで0に初期化されます。
リファレンス:C / C ++配列の初期化
vector<int> ans(5); //vector默认初始化为0
2.ループの初期化:
int arr[26] = {
1};
for(int i = 0; i<26;i++){
// 全部初始化为-1
arr[i] = -1;
}
3. memsetの初期化:
int arr[26] = {
-1};
memset(arr, -1, sizeof(arr));
char arr_1[10]; //单字符的变量可以正常初始化
memset(arr_1, 'c', sizeof(arr_1));
注:最初に:memset関数バイト単位でメモリブロックを初期化する、したがって、それを使用してint配列を0と-1以外の値に初期化することはできません(値の上位バイトと下位バイトが同じでない限り)。
2番目:memset(void * s、int ch、size_t n);この関数は、chの実際の範囲は0 ~~ 255である必要があるため入力した範囲の各バイトに割り当てることができるのは、chの最後の8ビットのみです
memset Baidu百科事典
総括する:
1. memsetで初期化すると便利ですが、0と-1以外の値は初期化できないことに注意してください。