Pertanyaan yang diberi tag pointers

237
Memahami typedef untuk pointer fungsi di C

Saya selalu sedikit bingung ketika saya membaca kode orang lain yang telah mengetik pointer untuk fungsi dengan argumen. Saya ingat bahwa saya perlu waktu beberapa saat untuk mendapatkan definisi seperti itu ketika mencoba memahami algoritma numerik yang ditulis dalam C beberapa waktu lalu. Jadi,...

228
Pointer jenis apa yang saya gunakan saat?

Ok, jadi terakhir kali saya menulis C ++ untuk mencari nafkah, std::auto_ptradalah semua std lib telah tersedia, dan boost::shared_ptrsemua adalah kemarahan. Saya tidak pernah benar-benar melihat ke dalam tipe penunjuk pintar lainnya yang disediakan. Saya mengerti bahwa C ++ 11 sekarang menyediakan...

220
smart pointer (boost) menjelaskan

Apa perbedaan antara set pointer berikut? Kapan Anda menggunakan setiap pointer dalam kode produksi, jika sama sekali? Contohnya akan dihargai! scoped_ptr shared_ptr weak_ptr intrusive_ptr Apakah Anda menggunakan peningkatan dalam kode

216
Apa perbedaan antara array char dan pointer char di C?

Saya mencoba memahami pointer dalam C tetapi saya saat ini bingung dengan yang berikut: char *p = "hello" Ini adalah pointer char yang menunjuk pada array karakter, mulai dari h . char p[] = "hello" Ini adalah array yang menyimpan halo . Apa perbedaannya ketika saya meneruskan kedua variabel...

212
Kembalikan array dalam suatu fungsi

Saya memiliki array int arr[5]yang dilewatkan ke fungsi fillarr(int arr[]): int fillarr(int arr[]) { for(...); return arr; } Bagaimana saya bisa mengembalikan array itu? Bagaimana saya menggunakannya, katakanlah saya mengembalikan pointer bagaimana saya akan

206
Apa sebenarnya penunjuk C jika bukan alamat memori?

Dalam sumber terpercaya tentang C, informasi berikut diberikan setelah mendiskusikan &operator: ... Agak disayangkan bahwa terminologi [alamat] tetap ada, karena membingungkan mereka yang tidak tahu alamat apa itu, dan menyesatkan mereka yang melakukannya: memikirkan pointer seolah-olah...

204
Lulus dengan referensi dalam C

Jika C tidak mendukung melewati variabel dengan referensi, mengapa ini bekerja? #include <stdio.h> void f(int *j) { (*j)++; } int main() { int i = 20; int *p = &i; f(p); printf("i = %d\n", i); return 0; } Keluaran: $ gcc -std=c99 test.c $ a.exe i = 21

189
Kenapa alamat array sama dengan nilainya dalam C?

Dalam sedikit kode berikut, nilai penunjuk dan alamat penunjuk berbeda seperti yang diharapkan. Tetapi nilai array dan alamat tidak! Bagaimana ini bisa terjadi? Keluaran my_array = 0022FF00 &my_array = 0022FF00 pointer_to_array = 0022FF00 &pointer_to_array = 0022FEFC #include...