Các quy định cụ thể tiêu chuẩn, tại §2.14.7.1, rằng:
Con trỏ đen là từ khóa nullptr
. Đây là giá trị của loại std::nullptr_t
. [Lưu ý: std::nullptr_t
là một loại riêng biệt không phải là loại con trỏ cũng không phải là con trỏ đến loại thành viên; thay vào đó, một giá trị của loại này là một hằng số con trỏ null và có thể được chuyển đổi thành một giá trị con trỏ null hoặc giá trị con trỏ thành viên null. -endnote]
Các prvalue duy nhất của loại nullptr_t
là nullptr
mà sau đó được chuyển đổi thành kiểu con trỏ khác theo các quy tắc quy định tại §4.10 và §4.11.
literals số nguyên khác có thể được chuyển đổi sang một giá trị kiểu std::nullptr_t
theo §4.10.1:
Một con trỏ hằng null là một số nguyên chữ (2.14.2) với giá trị zero hoặc một prvalue loại std::nullptr_t
.
Vì vậy, bạn có thể sử dụng ký tự đại diện có giá trị bằng 0 hoặc nullptr
.
Cụ thể:
0
0u
, 0U
0l
, 0L
0ul
, 0uL
, 0Ul
, 0UL
0ll
, 0LL
0ull
, 0uLL
, 0ULL
nullptr
NULL
tôi có thể bị thiếu một số trường hợp, do đó rơi tự do để chính xác cho tôi.
Yes. Xem ví dụ [tham chiếu 'std :: nullptr_t' này] (http://en.cppreference.com/w/cpp/types/nullptr_t). –
Bây giờ tôi tự hỏi nếu 'std :: nullpr_t()' là một biểu thức hợp lệ. Không thể thấy tại sao không, vì vậy đó sẽ là một lựa chọn khác. – MSalters