Widziałem w wielu postach, że "w większości przypadków nazwy tablic rozpadają się na wskaźniki".
Czy mogę się dowiedzieć, w jakich przypadkach/wyrażeniach nazwa tablicy nie ulega rozpadowi na wskaźniki do pierwszych elementów?Wyjątek dla tablicy, która nie ulega rozkładowi na wskaźnik?
Odpowiedz
Pewnie.
w C99 są trzy podstawowe przypadkach, a mianowicie:
gdy jest argument operatora
&
(adres-F)., gdy jest to argument operatora
sizeof
.kiedy jest Łańcuch znaków typu
char [N + 1]
lub wielu łańcuch znaków typuwchar_t [N + 1]
(N
jest długości łańcucha), które są wykorzystywane do inicjowania tablicy, jak wchar str[] = "foo";
lubwchar_t wstr[] = L"foo";
.
Ponadto, C11, gdzie nowo wprowadzona operatora alignof
nie pozwala na jego rozpadu argumentu tablicę do wskaźnika albo.
W C++ istnieją dodatkowe reguły, na przykład gdy są przekazywane przez odniesienie.
Przykro mi, ale czy możesz jaśniej wyjaśnić trzecią sprawę? Chodzi mi o to, że nie jest * str * w trzecim przypadku używanym w odniesieniu do położenia pamięci w ciągu znaków? Stąd znowu wskaźnik? –
@ TheJoker Nie, to byłby "const char * str_ptr =" literał ";'. W moim przykładzie 'str' jest zadeklarowane jako tablica, stąd ** jest ** tablicą. –
@GrijeshChauhan Dzięki :) –
- 1. Wskaźnik zerowy Wyjątek dla .setOnClickListener
- 2. Wskaźnik zerowy Wyjątek - findViewById()
- 3. Jak zadeklarować wskaźnik do funkcji, która zwraca wskaźnik do tablicy wartości int w C/C++?
- 4. SQLiteOpenHelper.getWriteableDatabase() wyjątek wskaźnik null na Androida
- 5. zerowy wskaźnik wyjątek ciąg 2d tablicy w java
- 6. Wskaźnik malloc do tablicy
- 7. sizeof Wskaźnik do tablicy
- 8. wskaźnik do tablicy C++
- 9. Wskaźnik w tablicy 2D
- 10. php wskaźnik tablicy kuriozum
- 11. Dereferencja wskaźnik do tablicy?
- 12. Uzyskanie wskaźnik do końca tablicy
- 13. c wskaźnik do tablicy struktur
- 14. Marshaling wskaźnik do tablicy ciągów
- 15. facebook login null wskaźnik wyjątek android
- 16. Jak ustawić wskaźnik na dowolny element tablicy 2D?
- 17. Konwertowanie ciągu na wskaźnik dla JNA
- 18. WKWebView ulega awarii na deinit
- 19. Wskaźnik zerowy Wyjątek w pliku-URI?
- 20. Wskaźnik do tablicy jako parametr funkcji
- 21. Dostęp do elementów tablicy ogólnie poprzez wskaźnik do tablicy znaków?
- 22. NSKeyedUnarchiver unarchiveObjectWithData ulega awarii - nie ma sposobu na wychwycenie wyjątku?
- 23. Android TextView i zerowy wskaźnik wyjątek
- 24. C++ wskaźnik do tablicy const const wskaźniki
- 25. SecTrustCreateWithCertificates ulega awarii na iPadzie
- 26. Dlaczego nie usunąć ustawić wskaźnik na NULL?
- 27. Kiedy wskaźnik do tablicy jest użyteczny?
- 28. Konwersja do unsigned char wskaźnik tablicy char
- 29. Dlaczego nie jest prawdą przekształcanie "wskaźnika na wskaźnik na niestały" na "wskaźnik do wskaźnika na const"
- 30. Stosując wskaźnik do tablicy w niebezpiecznym C#
Konieczny jest większy kontekst: Czy pracujesz w określonym języku? Czy masz przykład? – abiessu
należy rozważyć język C. I szukam przykładu, w którym nazwy tablicowe nie ulegają rozpadowi na wskaźnik. –
@TheJoker podałem [tutaj odpowiedź] (http://stackoverflow.com/questions/15177420/what-does-sizeofarr-return/15177499#15177499), w którym pokazuję te przypadki, –