2014-11-16 11 views
6

Per due puntatori a e che puntano entrambi allo stesso oggetto o funzione, in quali circostanze gli standard C garantiscono che a == b? Esistono piattaforme su cui a != b potrebbe contenere quando a e puntano allo stesso oggetto?Quando i puntatori allo stesso oggetto sono uguali?

risposta

12

Secondo il C standard (6.5.9 Uguaglianza operatori di Comitato N1548 Progetto - 2 DICEMBRE 2010 ISO/IEC 9899: 201x)

6 Due puntatori risultano uguali se e solo se entrambi sono puntatori nulli , entrambi sono puntatori allo stesso oggetto (incluso un puntatore a un oggetto e un oggetto secondario al suo inizio) o funzione, entrambi sono puntatori a uno dopo l'ultimo elemento dell'oggetto stesso array o uno è un puntatore a una passata alla fine di un oggetto matrice e l'altro è un puntatore per l'inizio di un oggetto array diverso che accade a seguire immediatamente il primo oggetto array nell'indirizzo space.109)

+0

Grazie per la risposta. Qualcuno mi ha detto che Intel ha aggiunto un linguaggio a C in modo che 'a! = B' possa contenere anche se' a' e 'b' puntano a oggetti diversi. Quale standard C stai citando? – fuz

+0

@ FUZxxl- 'a! = B' si manterrà solo se a e b puntano a oggetti diversi. Penso che tu abbia sbagliato a digitare! –

+0

@FUZxxl Ho citato il seguente documento N1548 Bozza del Comitato - 2 dicembre 2010 ISO/IEC 9899: 201x –

Problemi correlati