Tôi đã hỏi một câu hỏi tương tự trên cấu trúc here nhưng tôi đang cố gắng tìm ra cách C xử lý những thứ như gán biến và tại sao nó không được phép gán chúng cho eachother nếu chúng có chức năng giống nhau.Khai báo và gán mảng C?
phép nói rằng tôi có hai mảng:
int x[10];
int y[10];
Tại sao không x = y sẽ biên dịch? Nếu cả hai đều là "chữ ký" giống như vậy, thì bạn không thể gán chúng qua lại được không?
Tôi có thể khai báo chúng theo cách có thể cho phép tôi thực hiện điều đó trong C không? Nó có ý nghĩa với tôi rằng bạn sẽ có thể, nhưng có lẽ có một cách mà điều này có thể được thực hiện? Typedefs cho các cấu trúc dường như là giải pháp, nó sẽ giống nhau cho việc khai báo mảng và gán?
Tôi đánh giá cao sự giúp đỡ của các bạn, tôi mới làm quen với Stackoverflow nhưng đó thực sự là một nguồn lực tốt cho tôi!
Mã đó vẫn không làm những gì anh ta * muốn * nó làm gì, phải không? Có lẽ tôi sai, nhưng tôi có ấn tượng rằng anh ấy đã hy vọng sao chép nội dung của mảng y vào x. –
Đúng. May mắn thay, nhiều câu trả lời khác đã chỉ ra memcpy() là lựa chọn đúng đắn. Tôi sẽ thêm nó vào ... –
"Tên của một mảng thực sự là địa chỉ của phần tử đầu tiên của mảng đó. \ Mã ví dụ bạn cung cấp ở đây đang cố gán cho một thứ không phải là giá trị l". : vì lợi ích của hậu thế, tôi nghĩ tôi muốn lưu ý rằng cả hai câu này từ câu trả lời được bầu chọn nhiều nhất đều sai. Đầu tiên, tên của một mảng chắc chắn nhất * không phải là * một con trỏ (ví dụ: nghĩ sizeof()), nó chỉ đơn giản phân rã thành một con trỏ trong nhiều trường hợp. Thứ hai, tên mảng * là * một giá trị, không phải là một giá trị có thể sửa đổi được. –