Page 1 of 1

[C++] Cate e diferenta dintre const char* si char* const?

Posted: 30 Jul 2007, 21:59
by Marius Bancila
Intrebare: Cate e diferenta dintre const char* si char* const?

Raspuns: Prima defineste un pointer la sir de charactere constant, iar al doilea un pointer constant la char.

De fapt exista 4 variante:
  • pointer modificabil la date modificabile; se poate modifica atat valoarea pointer-ului cat si a datelor spre care indica

    Code: Select all

    char* ptr = new char[50];
    ptr[0] = 'a';  // ok
    ptr = NULL; // ok
    
  • pointer modificabil la date constante; se poate modifica doar valoare pointer-ului, nu si datele spre care indica

    Code: Select all

    const char* ptr = "marius";
    ptr[0] = 'M'; // eroare
    ptr = NULL; // ok
    
  • pointer constant la date modificabile; se poat modifica datele pointate, nu si valoarea pointer-ului

    Code: Select all

    char* const ptr = new char[5];
    ptr[0] = 'a'; // ok
    ptr = NULL; // error
    
  • pointer constant la date constante; nu se poate modifica nici valoarea pointer-ului, nici datele indicate

    Code: Select all

    const char* const ptr = "marius";
    ptr[0] = 'M'; // eroare
    ptr = NULL; // eroare
    

Next FAQ >>