Comprendre la distinction entre char* et char[]
Lorsque l'on traite des tableaux de caractères et des pointeurs en programmation C, il est crucial de saisir les différences fondamentales entre char str[] = "Test"; et char *str = "Test";.
char str[] = "Test";
Dans cette déclaration, str représente un tableau de caractères (caractères) de taille fixe, initialisée avec le contenu de la chaîne "Test". Le tableau possède sa propre mémoire et est distinct de la chaîne littérale d'origine. Toute modification apportée à str modifiera la copie locale des données, et non la chaîne "Test" elle-même.
char *str = "Test";
Ici, str est un pointeur, en particulier un pointeur vers le premier caractère de la chaîne littérale « Test ». Le pointeur stocke l'adresse mémoire de ce caractère. Cependant, il est crucial de se rappeler que str ne possède pas la mémoire dans laquelle la chaîne est stockée ; au lieu de cela, il pointe vers la chaîne littérale en lecture seule (const). Par conséquent, toute tentative de modification de la chaîne pointée par str entraînera un comportement indéfini.
Différences clés :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!