Pourquoi deux littéraux de chaîne séparés par un espace, une tabulation ou un «\ n» peuvent-ils être compilés sans erreur?Compilation des littéraux de chaîne
int main()
{
char * a = "aaaa" "bbbb";
}
"AAAA" est un char * "bbbb" est un char *
Il n'y a pas de règle spécifique de concaténation pour traiter deux chaînes littérales. Et, évidemment, le code suivant donne une erreur lors de la compilation:
#include <iostream>
int main()
{
char * a = "aaaa";
char * b = "bbbb";
std::cout << a b;
}
Est-ce concaténation commun à tous les compilateurs? Où est la fin nulle de "aaaa"? Est-ce que "aaaabbbb" est un bloc continu de RAM?
Ce sont des tableaux char, pas des pointeurs –