Méthode d'initialisation de tableau C ++: boucle for ou memset

1. Initialisation par défaut:

int arr[26] = {
    
    1}; // 初始化为{1,0,0,。。。,0}

Remarque: La liste d'initialisation initialise uniquement l'élément à la position indiquée et les autres positions sont initialisées à 0 par défaut.
Référence: initialisation du tableau C / C ++

vector<int> ans(5); //vector默认初始化为0

2. Pour l'initialisation de la boucle:

int arr[26] = {
    
    1}; 
for(int i = 0; i<26;i++){
    
     // 全部初始化为-1
    arr[i] = -1;
} 

3. Initialisation de memset:

int arr[26] = {
    
    -1}; 
memset(arr, -1, sizeof(arr));
char arr_1[10]; //单字符的变量可以正常初始化
memset(arr_1, 'c', sizeof(arr_1));

Remarque: d'abord: fonction memsetInitialiser le bloc de mémoire par octets, Il ne peut donc pas être utilisé pour initialiser le tableau int à une valeur autre que 0 et -1 (sauf si l'octet haut et l'octet bas de la valeur sont identiques).
Deuxièmement: memset (void * s, int ch, size_t n); La plage réelle de ch doit être de 0 ~~ 255, car cette fonctionSeuls les huit derniers bits de ch peuvent être affectés à chaque octet de la plage que vous entrez
Encyclopédie memset Baidu

Pour résumer:

1. Il est pratique d'initialiser avec memset, mais notez que les valeurs autres que 0 et -1 ne peuvent pas être initialisées.

Je suppose que tu aimes

Origine blog.csdn.net/qq_33726635/article/details/106114567
conseillé
Classement