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ố 11 kết quả

Đề tài: ++i khác i++ ở điểm nào?

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

    Mặc định ++i khác i++ ở điểm nào?

    Cả nhà cho mình hỏi i++ và ++i khác nhau ở điểm nào?

  2. #2
    Ngày gia nhập
    09 2011
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi kuzun9x Xem bài viết
    Cả nhà cho mình hỏi i++ và ++i khác nhau ở điểm nào?
    Hiểu đơn giản:
    a=10;
    b = 1 + a++; -> b = 11
    b = 1 + ++a; -> b = 12
    --------------------------
    Tức là:
    ++a: gán thêm 1 vào a trước rồi mới thực hiện phép tính.
    a++: thực hiện phép tính rồi mới gán thêm 1 vào a.

  3. #3
    Ngày gia nhập
    08 2010
    Nơi ở
    Moscow, Russia Federation
    Bài viết
    913

    C++ Code:
    1. int a = 10;
    2. int b = a++ + ++a;
    thế b bằng bao nhiêu bạn?
    Mời các bạn ghé thăm blog cá nhân của tôi

  4. #4
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi mp121209 Xem bài viết
    C++ Code:
    1. int a = 10;
    2. int b = a++ + ++a;
    thế b bằng bao nhiêu bạn?
    ra 22
    em giải thích thế này không biết đúng ko nữa hehe có gì chỉ giáo thêm.
    a++ là lấy gtri a thực hiện xong lệnh j đó rồi sẽ +=1
    ++a là +=1 trước để thực hiện lệnh sau đó
    a++ vẫn là 10 ++a là 11 cộng lại 21 sau đó sẽ trả về tham chiểu để gán lại kq cho b nên sẽ +1 vì đã thực hiện xong lệnh
    HT117-5277

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

    Trích dẫn Nguyên bản được gửi bởi treatmaster Xem bài viết
    ra 22
    em giải thích thế này không biết đúng ko nữa hehe có gì chỉ giáo thêm.
    a++ là lấy gtri a thực hiện xong lệnh j đó rồi sẽ +=1
    ++a là +=1 trước để thực hiện lệnh sau đó
    a++ vẫn là 10 ++a là 11 cộng lại 21 sau đó sẽ trả về tham chiểu để gán lại kq cho b nên sẽ +1 vì đã thực hiện xong lệnh
    Cho mình hỏi
    Code:
    int g=1;
    printf("%d %d %d",g,++g,g++);
    Tại sao nó lại in ra kq là 3 3 1 ?

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

    Mặc định ++i khác i++ ở điểm nào?

    @ ^ :
    Thứ tự thực hiện từ phải qua trái . Đấy là tính chất của toán tử dấu phẩy ","
    Um Mani Padme Hum...!!

  7. #7
    Ngày gia nhập
    03 2011
    Nơi ở
    Bình Dương, Hồ Chí Minh
    Bài viết
    392

    Trích dẫn Nguyên bản được gửi bởi dtt_thebad Xem bài viết
    Hiểu đơn giản:
    a=10;
    b = 1 + a++; -> b = 11
    b = 1 + ++a; -> b = 12
    --------------------------
    Tức là:
    ++a: gán thêm 1 vào a trước rồi mới thực hiện phép tính.
    a++: thực hiện phép tính rồi mới gán thêm 1 vào a.
    b ra 12 sao!!!!!!!!

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

    Trích dẫn Nguyên bản được gửi bởi vitbau1412 Xem bài viết
    b ra 12 sao!!!!!!!!
    Cái này b = 13 mới đúng chứ

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

    Trích dẫn Nguyên bản được gửi bởi kuzun9x Xem bài viết
    Cho mình hỏi
    Code:
    int g=1;
    printf("%d %d %d",g,++g,g++);
    Tại sao nó lại in ra kq là 3 3 1 ?
    @ ^ :
    Thứ tự thực hiện từ phải qua trái . Đấy là tính chất của toán tử dấu phẩy ","
    Mình vẫn không hiểu tại sao lại ra kết quả 3 3 1. Ai giải thích cặn kẽ giùm mình với!

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

    a,b,c <=>(a,b),c
    Toán tử "," thực hiện biểu thức bên phải và cho return về bên phải đầu tiên. Tức là thực hiện c và return nó.
    Sau đó có cái (a,b) con ở trong. Làm tương tự, dc b , rồi đến a
    Đi thẳng ví dụ :
    g,++g,g++ ;
    Thực hện g++ trc. Vậy lúc đó g=2, nhưng (g++)=1. Printf (g++) -> in 1 ra
    Tiếp đó ++g. g từ 2 tăng lên 3, và (++g) bằng chính giá trị g sau khi đã + (tức =3) . printf(++g) ra -> 3
    Cuối cùng còn g , thì g giờ vẫn = 3 nên in ra 3
    Um Mani Padme Hum...!!

Tags của đề tài này

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