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

Despre limbajul de programare C++ si biblioteca standard STL (forum moderat)
Post Reply
User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

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

Post by Marius Bancila » 30 Jul 2007, 21:59

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 >>


Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

Post Reply