Вярно или грешно?

Дадени са дефинициите:

int ival = 1024;  
int *iptr;  
double *dptr;

Обяснете какво се случва на всеки ред. Кои от следните присвоявания са неправилни? Обяснете защо:

  1. ival = *iptr;
  2. ival = iptr;
  3. *iptr = ival;
  4. iptr = ival;
  5. *iptr = &ival;
  6. iptr = &ival;
  7. dptr = iptr;
  8. dptr = *iptr;
Публикувано в 12а с етикети . Постоянна връзка.

2 Responses to Вярно или грешно?

  1. marant каза:

    1. ival = *iptr; – Не е правилно, защото указателят „*iptr“ не сочи към нищо.
    2. ival = iptr; – Не е правилно, защото този показател няма стойност
    3. *iptr = ival; – Числото към което сочи указателят присвоява стойността на променливата.
    4. iptr = ival; – Не е възможно понеже не е посечен адресът на променливата
    5. *iptr = &ival; – Не е правилно ,защото числото към което сочи показателя не може да присвои стойността на адресът на променливата
    6. iptr = &ival; Променливата присвоята адресът на стойността на променливата.
    7. dptr = iptr; – Единия показател присвоята другия . Възможно.
    8. dptr = *iptr; – Невъзможно. втория показател сочи към конкретна стойност а не към адреса на число.

  2. Gadget каза:

    1. Не може да бъде присвоен, защото указателят не сочи към нищо!
    2. Не е вярно, защото указателят iptr няма адрес!
    3. Не е вярно, защото указателят iptr не е инициализиран!
    4. Не е коректно зададен!
    5. Вярно, защото коректно е написан!
    6. Вече е вярно, защото имаме оказан адрес!
    7 и 8 не са верни защото от различен тип!

Вашият коментар