Dòng thứ hai của mã được coi là lỗi cú pháp hoặc lỗi ngữ nghĩa trong C++?Gán giá trị cho cú pháp không đổi hoặc lỗi ngữ nghĩa?
int a = 7;
3 = a;
Trong ngữ pháp ngữ cảnh không có ngữ cảnh C++ chuẩn, tôi tìm thấy câu lệnh này có cú pháp hợp lệ.
Dòng thứ hai của mã được coi là lỗi cú pháp hoặc lỗi ngữ nghĩa trong C++?Gán giá trị cho cú pháp không đổi hoặc lỗi ngữ nghĩa?
int a = 7;
3 = a;
Trong ngữ pháp ngữ cảnh không có ngữ cảnh C++ chuẩn, tôi tìm thấy câu lệnh này có cú pháp hợp lệ.
Nó không phải là một lỗi cú pháp, như ngữ pháp có thể lấy được từ nhượng thể hiện (5,17) lên đến integer_literal
Nó sau đó được một lỗi ngữ nghĩa, như đã nêu trong 5,17:
Tất cả yêu cầu giá trị sửa đổi là toán hạng bên trái và trả về giá trị giá trị liên quan đến toán hạng bên trái.
lvalue là khái niệm ngữ nghĩa, không phải là khái niệm ngữ pháp.
đó là lỗi ngữ nghĩa. –
Đó là lỗi khái niệm. – ern0