La station C est la plus simple pour démarrer et vous apprend à apprendre les tableaux à la main

1. Création et initialisation de tableaux unidimensionnels

créer: Prenons un tableau d'entiers comme exemple

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

La forme est comme ceci, arrpour le nom du tableau créé
[5], le tableau à l'intérieur est le nombre d'éléments du tableau,
intindiquant que le type des éléments du tableau est un type entier
initialisation

	int arr[5] = {
    
     1,2,3,4,5 };
	这种是把数组里面的元素全部初始化,并且指定了数组元素的个数
	int arr1[] = {
    
     1,2,3,4,5 };
	这种没有指定数组的个数,数组的元素的个数根据后面大括号里面的个数确定
	int arr2[5] = {
    
     1,2 };
	这种指定了数组元素的大小却没有完全初始,
	前面两个元素分别被初始化为12后面3个元素都被默认初始化为0

tableau de caractères

char arr[]="maoleshua";
这是10个元素,因为字符串以\0为结尾
char arr[]={
    
    'm','l','n','b'};
这是4个元素

pense

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

Le code ci-dessus est-il correct ? Avant la norme C99, il était faux d'écrire de cette façon ( [] ne peut contenir que des constantes entières ), mais après cela, il y a le concept de tableaux de longueur variable, qui est correct.
Mais le compilateur vs ne prend pas en charge la norme C99 pour le moment. Donc c'est faux.

2. L'utilisation de tableaux unidimensionnels

facile à utiliser

int main()
{
    
    
	int arr[5] = {
    
     1,2 };
	int i = 0;
	for (i = 0; i < 5; i++)
	{
    
    
		arr[i] = i;
	}
	for (i = 0; i < 5; i++)
	{
    
    
		printf("%d ", arr[i]);
	}
	return 0;
}

3. Stockage de tableaux unidimensionnels en mémoire

Le tableau est stocké de manière contiguë dans la mémoire.
Pour le code ci-dessus,
regardez son adresse mémoire
Comme on peut le voir

4. Création et initialisation de tableaux à deux dimensions

Le tableau à deux dimensions ressemble à ceci int arr[][], le premier [ ] représente la ligne et le second [ ] représente la colonne.
initialisation :

	int arr1[2][2] = {
    
     1,2,3 ,4};
	全部初始化
	int arr2[2][2] = {
    
     {
    
    1,2},{
    
    3 ,4} };
	和上面的一样,每个大括号表示一行
	int arr3[2][2] = {
    
     {
    
    1},{
    
    2,3 } };
	这种第一行没有完全初始化,没有完全初始化的被默认初始化为0
	int arr4[][2] = {
    
     1,2,3 ,4};
	这种省略行的表示是正确的,行数由后面的初始化的确定
	int arr5[2][] = {
    
     1,2,3,4 };
	这种初始化是错误的,不能省略列
	int arr6[2][2] = {
    
     1 };
	非完全初始化,其余元素都为0

5. L'utilisation de tableaux à deux dimensions

C'est aussi simple à utiliser

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

6. Stockage de tableaux bidimensionnels en mémoire

Les tableaux bidimensionnels sont également stockés de manière contiguë dans la mémoire

7. Tableau hors limites

Un tableau hors limites signifie accéder à la mémoire en dehors du tableau.
Prenons un tableau unidimensionnel comme exemple

	int arr[5] = {
    
     1,2 };
	int i = 0;
	for (i = 0; i < 6; i++)这里当i==5,访问数组中第6个元素,为越界访问
	{
    
    
		arr[i] = i;
	}

8. Tableaux comme paramètres de fonction

Le nom de tableau d'un tableau à une dimension représente l'adresse du premier élément . Le nom de tableau d'un tableau à deux dimensions représente .ligne
premièrel'adresse de l'élément de la


void f(int* arr)
{
    
    
	int st = sizeof(arr) / sizeof(arr[0]);
	大家可能以为st的值为5,但是为1,
	因为这个arr是指针变量,32位平台上占4个字节
}
int main()
{
    
    

	int arr[5] = {
    
     1,2,3 ,4 };
	f(arr);
	
	return 0;
}

Les lecteurs doivent faire attention

9. Vous apprendre le groupe à la main

QQ groupe 720429262

Je suppose que tu aimes

Origine blog.csdn.net/m0_60598323/article/details/123087226
conseillé
Classement