Giả sử tôi đã sau khởi của một mảng char:khởi tạo mảng char trong một cách tương tự như khởi tạo xâu
char charArray[]={'h','e','l','l','o',' ','w','o','r','l','d'};
và tôi cũng có sau khởi của một chuỗi chữ:
char stringLiteral[]="hello world";
Sự khác biệt duy nhất giữa nội dung của mảng đầu tiên và chuỗi thứ hai là chuỗi thứ hai có một ký tự null ở cuối của nó.
Khi đó là vấn đề khởi tạo mảng char, có macro hay cái gì cho phép chúng tôi đặt văn bản khởi tạo giữa hai dấu ngoặc kép nhưng mảng không nhận được ký tự kết thúc null không? Nó chỉ không có ý nghĩa với tôi rằng khi một ký tự null kết thúc là không cần thiết, chúng ta nên sử dụng cú pháp khởi tạo được đề cập đầu tiên và viết hai dấu nháy đơn cho mỗi ký tự trong văn bản khởi tạo, cũng như các dấu hiệu virgule để tách các ký tự.
Tôi nên thêm rằng khi tôi muốn có một mảng char, nó cũng nên được rõ ràng rằng tôi không muốn sử dụng nó với các chức năng dựa trên chuỗi literals cùng với thực tế là không có tính năng trong đó sử dụng chuỗi kết quả chữ, là vào xem xét của tôi.
Tôi rất biết ơn câu trả lời của bạn.
@Michael - đó là yêu cầu trong tiêu chuẩn C và C++. – Steve314
* VẤN ĐỀ * mà bạn phải đối mặt là "chuỗi được trích dẫn" được yêu cầu bởi ngôn ngữ được NUL chấm dứt. – torak