NULL LÀ GÌ TRONG C

Dẫn nhập
Tại bài học trước, mình đã share đến các bạn về CON TRỎ CƠ BẢN TRONG C++(Pointer). Một số ý chính cơ mà bạn cần nắm: Con trỏ là biến cất liên tưởng bộ nhớ, có thể được truy vấn bằng phương pháp thực hiện toán thù tử dereference (*). Truy cập một con trỏ rác có thể sụp đổ vận dụng của công ty.
Bạn đang xem: Null là gì trong c
Hôm ni, chúng ta vẫn cùng mày mò về quan niệm Con trỏ NULL vào C++ (NULL pointers).
Nội dung
Để hiểu gọi bài này tốt nhất có thể các bạn đề xuất có kiến thức cơ bản về:
Trong bài ta sẽ cùng khám phá các vấn đề:
Giá trị null cùng con trỏ null (Null values & null pointers)Truy cập con trỏ nullMacro NULLnullptr vào C++11Giá trị null cùng nhỏ trỏ null
Tương tự nlỗi các phát triển thành thông thường, nhỏ trỏ ko được khởi tạo nên khi khai báo. Nếu con trỏ không được khởi tạo một quý hiếm, bọn chúng sẽ chứa quý giá rác.
Ngoài liên tưởng vùng ghi nhớ, gồm một giá trị mà lại bé trỏ hoàn toàn có thể giữ được, kia là quý hiếm null. Null là 1 trong cực hiếm đặc trưng, điều đó Có nghĩa là bé trỏ đó không trỏ mang đến hệ trọng nào cả. Con trỏ đang nắm giữ cực hiếm null được call là con trỏ null (null pointer).
float *ptr 0 ; // ptr là 1 nhỏ trỏ nullfloat *ptr2; // ptr2 là bé trỏ rácptr2 = 0; // ptr2 là một trong những con trỏ nullTa hoàn toàn có thể thực hiện một ĐK nhằm bình chọn coi một bé trỏ tất cả null xuất xắc không:double *ptr 0 ;// bé trỏ vẫn chuyển thành true ví như nó null, với false trường hợp nó không nullif (ptr)cout Output: bé trỏ null.
Chú ý: Nên khởi chế tạo ra nhỏ trỏ là null trường hợp nó vẫn chưa trỏ đến một ảnh hưởng cụ thể nào không giống.
Truy cập nhỏ trỏ null
Trong bài học kinh nghiệm trước, bạn sẽ hiểu rằng bài toán truy vấn một con trỏ rác đã dẫn cho hiệu quả ko xác định. Nếu truy xuất quý hiếm của nhỏ trỏ null, chương trình có thể bị đóng góp vị hệ quản lý.
Macro NULL
Ngôn ngữ C (không phải C++) khái niệm một macro chi phí cách xử trí đặc biệt quan trọng được Điện thoại tư vấn là NULL, nó có mức giá trị 0.
Xem thêm: Regalcoin (Rec) Pris, Diagram, Marknadsvärde Och Andra Mätetal
#define NULL 0Mặc cho dù phía trên không phải là 1 phần nghệ thuật của C++, dẫu vậy nó hoạt động thông dụng trong đa số trình biên dịch C++:
double *ptr = NULL; // ptr là 1 con trỏ nullTuy nhiên, về mặt chuyên môn, macro NULL chưa hẳn là kỹ thuật vào C++, do vậy nên tránh sử dụng nó vào C++.
nullptr trong C++11
Lưu ý rằng quý hiếm của 0 không phải là 1 trong những kiểu con trỏ, cho nên gán 0 cho một bé trỏ để bộc lộ rằng bé trỏ là 1 trong nhỏ trỏ null là không duy nhất quán.
#include using namespace std;void doSomething(double *ptr){// ptr vẫn chuyển thành true nếu nó null, với false ví như nó không nullif (ptr)std::cout Để xử lý đều vấn đề này, C++11 trình làng một từ bỏ khóa bắt đầu có tên nullptr. nullptr là 1 trong những hằng số rvalue, giống như những từ bỏ khóa boolean true và false.
int *ptr = nullptr; // ptr là 1 trong những con trỏ nulldoSomething(nullptr); // truyền nhỏ trỏ null vào hàmDường như, C++11 còn khái niệm một đẳng cấp tài liệu nullptr_t, nullptr_t chỉ hoàn toàn có thể lưu trữ quý giá nullptr. Nhưng nó thường xuyên chỉ được áp dụng Một trong những trường đúng theo lẻ tẻ, bạn hãy xem thêm và chia đã trong bình luận dưới nhé.
Kết luận
Qua bài học này, chúng ta đang thay được cơ bạn dạng về Con trỏ NULL trong C++ (NULL pointers). Lưu ý rằng ta nên khởi tạo thành bé trỏ là null ví như nó vẫn chưa trỏ mang đến một cửa hàng ví dụ nào khác nhé.
Trong bài xích tiếp theo, bản thân vẫn trình làng mang lại các bạn về hồ hết vấn đề bao phủ CON TRỎ và MẢNG TRONG C++(Pointers & arrays).
Cảm ơn các bạn đã theo dõi nội dung bài viết. Hãy còn lại comment hoặc góp ý của chính bản thân mình để cải cách và phát triển nội dung bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không mắc cỡ khó”.
Xem thêm: Hướng Dẫn Sử Dụng Metatrader 4, Mới Nhất 2021
Thảo luận
Nếu bạn bao gồm bất kỳ khó khăn giỏi thắc mắc gì về khóa đào tạo, chớ ngần ngại đặt thắc mắc vào phần BÌNH LUẬN dưới hoặc vào mục HỎI và ĐÁP trên thỏng viện vnggroup.com.vn.com để nhận thấy sự cung cấp từ bỏ xã hội.