Сомневайся с целыми числами, указателями, и nullptr

Сомнение, которое я появилось; если я делаю

struct Lista {
  struct Lista *inicio;
  struct Lista *fin;
};

int main( void ) {
  Lista *l1 = new Lista;

  l1->inicio = 0; // Ok.
  l1->inicio = 100; // Error.
  l1->inicio = nullptr; // Ok.

  return 0;
}

Составив это с g++ -std=c++11 -Wall -pedantic, брось следующую ошибку:

error: invalid conversion from ‘int’ to ‘Lista*’: l1->inicio = 100;

Как это? Porqué я могу распределять ему один 0, но не другое число?

И что nullptr ?

Совсем не, который я не становлюсь понятным

l1->fin = new Lista; // Ok.
l1->fin = reinterpret_cast< Lista * >( 100 ); // ¡¡ funciona !!
l1->fin = (Lista *)100; // ¡¡ también funciona !!

Но тогда, что демоны - указатель?

5
задан 21.03.2017, 10:22
0 ответов