Tôi có một mảng gồm 3 phần tử. Nhưng tôi chỉ muốn khởi tạo 2 trong số đó. Tôi để trống phần tử thứ ba.Giá trị của các phần tử chưa được khởi tạo trong mảng ngôn ngữ C
unsigned char array[3] = {1,2,};
int main(){
printf("%d",array[2]);
return 0;
}
Kết quả in là 0. Tôi đã thử nghiệm trên IAR và một số trình biên dịch trực tuyến.
Có quy tắc C nào cho giá trị của phần tử thứ ba không? Có trình biên dịch nào điền phần tử thứ ba bằng 0xFF không? (Đặc biệt là trình biên dịch chéo)
Điều đó không thực sự trả lời câu hỏi. OP muốn biết nếu có một quy tắc cho những gì giá trị không xác định chỉ số được khởi tạo với (có) và sẽ bất kỳ trình biên dịch ngầm khởi tạo chúng đến 0xFF (không có trình biên dịch tuân thủ tiêu chuẩn sẽ làm như vậy). –