2016-03-25 20 views

Trả lời

12

C99 cho phép bạn chỉ định các phần tử của mảng theo thứ tự bất kỳ (điều này có vẻ được gọi là "Trình khởi tạo được chỉ định" nếu bạn đang tìm kiếm nó). Vì vậy, cấu trúc này được gán 7 thành phần tử thứ hai của c.

Biểu thức này tương đương với char c[2] = {0, 7}; không tiết kiệm dung lượng cho bộ khởi tạo ngắn như vậy nhưng rất hữu ích cho các mảng thưa thớt lớn hơn.

Xem trang này để biết thêm chi tiết: https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

+2

Đó là tương đương với 'char c [2] = {0 , 7}; 'ở đây nhưng bộ khởi tạo được chỉ định rất thuận tiện trong các trường hợp mảng và cấu trúc dài. –

+0

Đó là một cách dễ dàng khác để hình dung, nó. Đã thêm vào câu trả lời. –

2

ý nghĩa của nó sẽ là

char c[2]={ 0, 7 } 

HOẶC bạn có thể nói

char c[2]; 
c[0]=0; 
c[1]=7; 
+0

Tại sao 'NULL', đó là một con trỏ *** không liên tục ***? Bạn muốn sử dụng '0' hoặc' '\ 0'' để khởi tạo 'char'. – alk

+0

oh sry i có nghĩa là 0x0 của nó nt NULL – Mukesh

+0

Ví dụ thứ hai của bạn không phải là một initializer nhưng thời gian chạy báo cáo. –

Các vấn đề liên quan