Կոդի այս հատվածում (char c = 'a'; const char * p1 = & c; char * const p2 = & c;) կա տարբերություն, թե ինչ է անում p1- ը և p2- ը և աստղանիշի գործառույթը (*) երկուսի մեջ: Դեպքեր


պատասխանել 1:

const char * նշանակում է, որ նշված արժեքը չի կարող փոփոխվել:

char * const նշանակում է, որ ցուցիչն ինքնին չի կարող փոխվել:

Երրորդ տարբերակն էլ կա

const char * const Ոչ արժեքը և ոչ ցուցիչը չեն կարող փոխվել:

# ներառել int main (անվավեր) {char a = 'a'; char b = 'b'; const char * p1 =? char * const p2 =? const char * const p3 = & a; printf ("a '% c' \ n", ա); printf ("p1% 08X '% c' \ n", p1, * p1); printf ("p2% 08X '% c' \ n", p2, * p2); printf ("p3% 08X '% c' \ n", p3, * p3); // * p1 = '1'; // Սխալ * p2 = '2'; // * p3 = '3'; // սխալի p1 = & b; // pb = & b; // Սխալ // հատ = & բ; // Error printf ("a '% c' \ n", ա); printf ("p1% 08X '% c' \ n", p1, * p1); printf ("p2% 08X '% c' \ n", p2, * p2); printf ("p3% 08X '% c' \ n", p3, * p3); }