string[0] = "";
"warning: assignment makes integer from pointer without a cast
Ok, hãy đi sâu vào biểu thức ...
0
một int: đại diện cho số ký tự (giả sử string
là (hoặc phân hủy thành) một char *) để thăng tiến từ đầu của đối tượng string
string[0]
: đối tượng char
nằm ở đầu đối tượng string
""
: string literal: một đối tượng kiểu char[1]
=
: phân công điều hành: cố gắng để chỉ định giá trị loại char[1]
cho một đối tượng thuộc loại char
. char[1]
(bị phân hủy thành char*
) và char
không được gán tương thích, nhưng trình biên dịch tin tưởng bạn (lập trình viên) và tiếp tục với nhiệm vụ bằng cách truyền loại char*
(số char[1]
bị phân rã thành) thành int
--- và bạn nhận được cảnh báo như một tiền thưởng. Bạn có một trình biên dịch thực sự tốt đẹp :-)
Điểm khai báo chuỗi 0 ký tự là gì? – cdhowie
Loại 'chuỗi' của bạn là gì? Nó là một con trỏ char hay mảng char? – nos
'Chuỗi' là gì? – leppie