Tableau de langage C (activé)

Comment créer un tableau

    //创建一个数组-存放整型-10个
    int arr[10] = { 1, 2, 3 };

De cette façon, nous avons créé un tableau unidimensionnel,
mais rappelez-vous que pour la création d'un tableau, une constante doit être donnée entre [] et les variables ne peuvent pas être utilisées.


Initialisation du
tableau : L'initialisation du tableau consiste à donner des valeurs initiales raisonnables (initialisation) au contenu du tableau lors de la création du tableau.
Par exemple:

int arr1[10] = {1,2,3};//这样是不完全的初始化,剩下的元素默认初始化为0

Lorsque le tableau est créé, si vous ne souhaitez pas spécifier une certaine taille du tableau, vous devez l'initialiser. Le nombre d'éléments dans le tableau est déterminé en fonction du contenu initialisé. Mais pour que le code suivant distingue, comment allouer la mémoire.

int main()
{
    char arr4[] = "abcdef";
    printf("%d\n", sizeof(arr4));
    //sizeof 计算 arr4所占空间的大小
    //7个元素-char 7*1 = 7
    printf("%d\n", strlen(arr4));
    //strlen 求字符串的长度 -'\0'之前的字符个数
    //[abcdef\0]
    //6
    return 0;
}

Ici, nous devons connaître la différence entre strlen et sizeof 1. strlen et sizeof
n'ont rien à voir avec
2. strlen est de trouver la longueur de la chaîne - seulement la longueur de la fonction string-library - utiliser le fichier d'en-tête de référence
3. taille des variables de calcul, la taille du tableau et le type - l'unité est un opérateur d'octet


Les tableaux unidimensionnels utilisent l'
opérateur de référence d'indice [], qui est en fait un opérateur pour l'accès au tableau.


Résumé
1. Les tableaux sont accessibles à l'aide d'indices, qui commencent à 0.
2. La taille du tableau peut être calculée.


Stockage de tableaux unidimensionnels en mémoire

int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    int i = 0;
    for (i = 0; i < sz; i++)
    {
        printf("&arr[%d] = %p\n",i, &arr[i]);
    }
}

Tableau de langage C (activé)
De arr [0] à arr [9], on peut voir qu'à mesure que l'indice du tableau augmente, l'adresse de l'élément augmente également régulièrement. On peut conclure que la matrice est stockée en permanence en mémoire.


Vient ensuite la création d'un tableau à deux dimensions

int arr[3][4];
char arr[3][5];
float arr[2][4];

Initialisation d'un tableau bidimensionnel

int arr[3][4] = {1,2,3,4};
int arr[3][4] = {{1,2},{3,4}};
int arr[][4] = {{1,2},{3,4}};

À ce stade, les amis aux yeux perçants peuvent trouver qu'il n'y a pas de nombre dans le [] dans la ligne représentative précédente du troisième tableau à deux dimensions, car dans le tableau à deux dimensions, la ligne d'initialisation du tableau à deux dimensions peut être omis mais la colonne ne peut pas être omise . (Supplément: int arr [3] [4] représente la création de trois lignes et quatre colonnes)


L'utilisation de tableaux à
deux dimensions L'utilisation de tableaux à deux dimensions se fait également par le biais d'indices.


Stockage de la matrice bidimensionnelle en mémoire

int main()
{
    int arr[3][4];
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        int j = 0;
        for (j = 0; j < 4; j++)
        {
            printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
        }
    }
    return 0;
}

Résultat d'impression: D'après le
Tableau de langage C (activé)
résultat, nous pouvons voir que, comme un tableau unidimensionnel, un tableau bidimensionnel est stocké en permanence dans la mémoire .

2021.1.26
Toujours croire aux imbéciles d'ordinateurs

Je suppose que tu aimes

Origine blog.51cto.com/15080720/2607578
conseillé
Classement