Bonjour,

J'apprends en ce moment le C, et j'adore coder et tout le reste . . .
Cependant, j'aimerais que l'on m'apporte certaines précisions, car j'admet être un peu perdu.

Voici ce que je voudrais savoir -> :

1) J'ai récemment vu un exemple de source en C, et j'y ai noté quelque chose. De cet exemple, j'ai sauté à une conslusion : Lorsque l'on communique entre fonctions, la fonction appelée ne peut modifier une variable de la fonction appelante. Toutefois, cette règle ne s'applique pas pour les tableaux.
À titre d'exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#include <stdio.h>
 
void copy(char from[], char to[]);
 
int main(void) {
	char devon[6];
	char shire[6];
	devon[0]='h';
	devon[1]='e';
	devon[2]='l';
	devon[3]='l';
	devon[4]='o';
	devon[5]='\0';
	copy(devon, shire);
	printf("%s\n", shire);
	return 0;
}
 
void copy(char from[], char to[]) {
	int i;
	for (i = 0; i <= 5; ++i)
		to[i] = from[i];
}
Lorsque l'on appelle copy(devon, shire), from[] et to[] se trouvent à opérer directement sur devon et shire.

Es-ce exact???

2) '\0' doit être présent dans un tableau de caractères, car il indique la fin de ce tableau.

3) On peut déclarer un tableau sans spécifier sa taille seulement dans une déclaration d'argument propre à une fonction.

Par exemple, si c'est exact, je ne pourrais faire cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include <stdio.h>
 
int main(void) {
    char devon[];
    int shire[];
 
    . . .
 
}

Voilà, ce ne sont que de simple questions afin de m'assurer que je ne me trompe pas. Si vous pouviez me donner vos réponses en spécifiant le numéro de la question correspondante, j'en serais enchanté, simplement pour plus de clarté.

Sincèrement,

Array