Jen možná doplním, že v céčku se ten řádek:
char *str="Hello";
může chovat rozdílně ve chvíli, kdy se pokusíme zapsat:
str[4]='*';
V Unixech na procesorech s ochranou paměti (=všechny moderní) to segfaultne, ale třeba v DOSu normálně půjde ten konstantní řetězec přepsat, na MCU se nemusí stát nic (do FLASH nezapíšeš, ale ochrana se taky nekoná), mnohdy to ani nepůjde přeložit, protože na opravdu malých MCU ani nejsou instrukce pro zápis do code segmentu.