Tổng số lượt xem trang

Thứ Tư, 9 tháng 2, 2011

1 số vấn đề hay và hay nhầm lẫn trong lập trình C++


                                                            I.  Khai báo Con trỏ và const
Khai báo
const int *p
int *const p
const int *const p
Ý nghĩa
Khai báo con trỏ p trỏ đến const int
Khai báo con trỏ const p trỏ đến int
Khai báo con trỏ const p trỏ đến const int
Giá trị khởi tạo
Không bắt buộc (Mặc định là 0xCCCCCCCC)
Bắt buộc
Bắt buộc
Thay đổi địa chỉ trỏ đến
Có thể
Không thể
Không thể
Thay đổi giá trị *p
Không thể
Có thể
Không thể

Tương đương với
int const *p

Tương đương với
int const *const p


                        II.  Chiều thực hiện toán tử xuất <<
Chiều thực hiện là từ phải qua trái như toán tử gán ( = ). 
Điều đó giải thích với đoạn code:

int n=5;
cout << "Ket qua khi tang " << n << " len 1 don vi la " << ++n ;

Kết quả in ra màn hình thay vì là:
Ket qua khi tang 5 len 1 don vi la 6

 Nhưng lại trở thành:
Ket qua khi tang 6 len 1 don vi la 6

Để tránh những sai lầm không đáng như thế, hãy tốn ít công sức viết tách ra:
int n=5;
cout << "Ket qua khi tang " << n ;
cout<< " len 1 don vi la " << ++n ;


                       III.  Cấu trúc For
Cấu trúc tổng quát :
for ( lệnh A ;  mệnh đề B ; lệnh C ) { lệnh D ; }

Lưu đồ:

  • A, C có thể trống, là lệnh hoặc các  lệnh (được ngăn cách bằng dấu phẩy ( , ))
  • B có thể trống, là mệnh đề hoặc các mệnh đề (được ngăn cách bằng dấu phẩy ( , ))
  • D có thể trống, là lệnh hoặc các tập lệnh, cuối lệnh kết thúc bằng dấu chấm phẩy ( ; )

Ví dụ : Đoạn mã sau sẽ in số 1 đến 10 ra màn hình
for( int i = 0 ; ++i < 11 ; cout << i << '\t' );

b7

1 nhận xét: