2014-11-16 24 views
6

Dla dwóch wskaźników a i b, które wskazują na ten sam obiekt lub funkcję, w jakich okolicznościach standardy C gwarantują, że a == b? Czy istnieją jakieś platformy, na których można przechowywać a != b, gdy a i b wskazują ten sam obiekt?Kiedy wskaźniki do tego samego obiektu są takie same?

Odpowiedz

12

według standardu C (6.5.9 Równość operatorów z Komitetu N1548 Draft - 2 grudnia 2010 ISO/IEC 9899: 201x)

6 Dwa wskaźniki porównać równe wtedy i tylko wtedy, gdy oba wskaźniki są zerowe , oba wskaźniki do tego samego obiektu (zawiera wskaźnik do obiektu i podobiektu na jego początku) lub funkcji oba są wskaźniki do jednego ostatnim elementem tego samego obiektu tablicy lub jeden oznacza a wskaźnik wskazuje jeden koniec jednego obiektu tablicy, a drugi jest wskaźnik do początku innego obiektu array, że dzieje się natychmiast wykonaj pierwszy obiekt tablicy w space.109 adresowej)

+0

Dziękuję za odpowiedź. Ktoś powiedział mi, że Intel dodał język do C, aby 'a! = B' mógł pomieścić nawet jeśli' a' i 'b' wskazują na różne obiekty. Który standard C podajesz? – fuz

+0

@ FUZxxl- 'a! = B' będzie trzymać tylko wtedy, gdy aib wskazują na różne obiekty. Myślę, że źle wpisałeś! –

+0

@FUZxxl Zacytowałem następujący dokument Projekt N1548 Komitetu - 2 grudnia 2010 r. ISO/IEC 9899: 201x –

Powiązane problemy