( ricpet | 2023. 01. 02., h – 21:14 )

Tehát szeretnék definiálni egy konstans stringet, vagyis azt akarom, hogy sem a változó által mutatott cím, sem a string tartalma ne változzon. Ha jól értem, a

const char* FIX="fix";

ezt definiálja. Ha az elejéről a const elmarad, akkor a FIX pointer értéke változhat, de maga a szöveg akkor sem.(?)

Rosszul érted. Ez csak azt mondja, hogy a sztring tartalma nem változtatható, de hogy a FIX nevű változód mire mutat, az változhat a program futása során.

Amit akarsz, a következő két módon tudod:

const char c1[] = "x";
const char * const c2 = "y";

Alább meg egy példaprogram, hogy van két nem változtatható sztringed, amire nem változtatható pointerek mutatnak (c1 és c2); és van egy pointer, ami változhat, hogy hová mutat, de csak nem változtatható sztringekre mutathat (v):

#include <iostream>

using namespace std;

const char * const c1 = "x";
const char * const c2 = "y";

int main()
{
    const char * v;
    v = c1;
    cout << v << endl;
    v = c2;
    cout << v << endl;

    return 0;
}