Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: Thứ tự ưu tiên của phép toán. lỗi non-lvalue assignment

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    11

    Mặc định Thứ tự ưu tiên của phép toán. lỗi non-lvalue assignment

    nhờ các bro chi giáo là tại sao lại có cái lỗi dở hơi kia..
    code đơn giản như sau:
    #include...
    int main(){
    int a;
    a++=10;//hoặc 1 dòng lệnh khác như a=b=c++=d=10;
    printf("%d \n",a);
    }

  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    a++ là một phép tính trả ra giá trị, không phải là biến để có thể gán giá trị

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    11

    nhưng sao ma để ++a=10 vẫn được vậy kài...

  4. #4
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Của mình nó báo lỗi hết:

    Code:
    aaa.c:21:9: error: expression is not assignable
        a++ = 13;
        ~~~ ^
    aaa.c:22:9: error: expression is not assignable
        ++a = 15;
        ~~~ ^
    aaa.c:23:5: error: expression is not assignable
        ++++a;
        ^ ~~~
    aaa.c:24:8: error: expression is not assignable
        a++++;

  5. #5
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    ++a=10
    Tương đương ++a, a=10
    Do phải tăng a trước rồi mới thực hiện phép tính
    còn a++=10 <=>
    (a++)=10
    Đã được chỉnh sửa lần cuối bởi trungkien45 : 27-02-2012 lúc 11:48 PM.

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Mặc định Thứ tự ưu tiên của phép toán. lỗi non-lvalue assignment

    Của mình cũng báo lỗi với cả 2 trường hợp ++ trước và ++ sau : The left-hand side of an assignment must be a variable

    Cho dù thứ tự phép toán có là (++a)=10 hay ++(a=10) đi nữa thì cái biểu thức trong ngoặc vẫn chỉ là 1 r-Value/non variable nên ko thể thực hiện tiếp phép toán tiếp theo

    Trình dịch của bạn bị gì thế nhỉ ? Hay là dịch ra thành như trungkien nói (++a=10 <=> ++a,a=10) @@ ??
    Sao lại có chuyện tự chẻ đôi toán hạng chia cho mỗi toán tử mỗi cái thế nhỉ ?
    Mỗi toán tử đều có return và sau khi thực hiện xong thì biểu thức trở thành r-value chứ nhỉ ?
    Bạn xài trình dịch nào thế ? Khó hiểu quá
    Um Mani Padme Hum...!!

  7. #7
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Chắc là VS, mình dịch trên VS 2k8, chạy đc ++a=10 mà?
    @clchicken: Bạn dùng gì vậy?

  8. #8
    Ngày gia nhập
    11 2011
    Bài viết
    11

    mình chạy bằng Cfree 5..các bạn giải thích kĩ giúp mình được k?

  9. #9
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Mình dùng VS 2010 . Nó báo lỗi ngay từ trong trứng nước @@ ??
    Có bản 2008 đây, thử phát xem nào
    ________________
    Ặc, nó chả báo lỗi gì trơn @@. Cái gì thế này
    Um Mani Padme Hum...!!

  10. #10
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Thì giờ để đi học giải thuật. Vương víu mới mấy cái code không tiêu chuẩn ấy làm chi cho uổng phí tuổi xuân.

    nếu trình dịch chấp nhận ++a (hay a++) là lvalue thì bạn được gì?
    Câu lệnh ++a = 10; hay a++ = 10; có gì đặc sắc mà phải phí thì giờ với nó.

Các đề tài tương tự

  1. Mã nguồn C Lỗi lvalue required as left operand of assignment
    Gửi bởi nahaont trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 23-02-2013, 02:55 PM
  2. Bài tập C++ Assignment 1
    Gửi bởi boyanhtrai trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 31-01-2012, 10:50 AM
  3. Lỗi Lvalue required trong C sửa như thế nào?
    Gửi bởi key trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 09-03-2011, 10:21 AM
  4. Lỗi Lvalue required trong lập trình C là lỗi gì?
    Gửi bởi nh0ck0n10b trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 30-01-2011, 05:39 AM
  5. Viết chương trình quản lý học sinh , code bị lỗi Lvalue required , cần giúp đỡ
    Gửi bởi chizro trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 17-10-2010, 11:38 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn