Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Thứ tự ưu tiên phép toán trong C

    Mình có mấy câu hỏi này, mong mọi người giải đáp giúp (mình đã google nhưng tìm được nhiều câu trả lời không nhất quán)

    1. về thứ tự ưu tiên các phép toán, ví dụ:
    Mã:
    int x, y = 5, z = 10;
    x = y++ + 2*(y+z)+ ++z;
    thì thứ tự thực hiện các phép toán như nào?

    2. Tại sao toán tử ++ có độ ưu tiên hơn toán tử * (lấy giá trị con trỏ) mà phép toán: ++*p lại có giá trị khác *++p. đáng ra cả 2 trường hợp thì ++ đều phải thực hiện trước * chứ?

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Câu 1 thì chắc chắn bạn sẽ ko tìm đc câu trả lời vừa ý. (Undefined behavior)

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn ơi, có phải câu trả lời là các do các trình dịch ko giống nhau, còn nếu về chuẩn theo C thì thứ tự thực hiện là:
    đầu tiên là 2*(5+10) =30
    và kết quả là x = 5+ 30 + 11 = 46

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi myhanh1303
    bạn ơi, có phải câu trả lời là các do các trình dịch ko giống nhau, còn nếu về chuẩn theo C thì thứ tự thực hiện là:
    đầu tiên là 2*(5+10) =30
    và kết quả là x = 5+ 30 + 11 = 46
    Về trường hợp này thì chuẩn không có quy định.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •