Giáo trình về C++ full

61 161 0
Giáo trình về C++ full

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài : Cấu Trúc Của Một Chương Trình C++ Có lẽ cách tốt để bắt đầu học ngơn ngữ lập trình chương trình Vậy chương trình : // my first program in C++ Hello World! #include int main () { cout >=, = Lớn < = Nhỏ Ví dụ: (7 == 5) trả giá trị false (6 >= 6) trả giá trị true tất nhiên thay sử dụng số, sử dụng biểu thức Cho a=2, b=3 c=6 (a*b >= c) trả giá trị true (b+4 < a*c) trả giá trị false Cần ý = (một dấu bằng) lf hoàn toàn khác với == (hai dấu bằng) Dấu toán tử gán ( gán giá trị biểu thức bên phải cho biến bên trái) dấu lại (==) toán tử quan hệ nhằm so sánh xem hai biểu thức có hay khơng Trong nhiều trình dịch có trước chuẩn ANSI-C++ ngơn ngữ C, tốn tử quan hệ khơng trả giá trị logic true false mà trả giá trị int với tương ứng với false giá trị khác (thường 1) tương ứng với true Các toán tử logic ( !, &&, || ) Toán tử ! tương đương với tốn tử logic NOT, có đối số phía bên phải việc mà làm đổi ngược giá trị đối số từ true sang false ngược lại Ví dụ: !(5 == 5) trả false biểu thức bên phải (5 == 5) có giá trịtrue !(6 6)) trả true ( true || false ) Toán tử điều kiện ( ? ) Toán tử điều kiện tính tốn biểu thức trả giá trị khác tuỳ thuộc vào biểu thức hay sai Cấu trúc sau: condition ? result1 : result2 Nếu condition true giá trị trả result1, không giá trị trả result2 7==5 ? : trả khơng 7==5+2 ? : trả 5+2 5>3 ? a : b trả a, lớn a>b ? a : b trả giá trị lớn hơn, a b Các toán tử thao tác bit ( &, |, ^, ~, ) Các toán tử thao tác bit thay đổi bit biểu diễn biến, có nghĩa thay đổi biểu diễn nhị phân chúng tốn tử asm Mơ tả & AND Logical AND | OR ^ XOR Logical exclusive OR ~ NOT Đảo ngược bit > SHR Dịch bit sang phải Logical OR Các toán tử chuyển đổi kiểu Các toán tử chuyển đổi kiểu cho phép bạn chuyển đổi liệu từ kiểu sang kiểu khác Có vài cách để làm việc C++, cách thừa kế từ ngôn ngữ C đặt trước biểu thức cần chuyển đổi tên kiểu liệu bọc cặp ngoặc đơn (), ví dụ: int i; float f = 3.14; i = (int) f; Đoạn mã chuyển số thập phân 3.14 sang số nguyên (3) Ở đây, toán tử chuyển đổi kiểu (int) Một cách khác để làm điều C++ sử dụng constructors (ở số sách thuật ngữ dịch cấu tử tơi thấy khơng xi tai lắm) thay dùng tốn tử : đặt trước biểu thức cần chuyển đổi kiểu tên kiểu bao bọc biểu thức cặp ngoặc đơn i = int ( f ); Cả hai cách chuyển đổi kiểu hợp lệ C++ Thêm vào ANSI-C++ có tốn tử chuyển đổi kiểu đặc trưng cho lập trình hướng đối tượng sizeof() mychar++; myshort++; mylong++; mychar - bạn mong đợi - mang giá trị 1001 Tuy nhiên myshort mang giá trị 2002 mylong mang giá trị 3004 Nguyên nhân cộng thêm vào trỏ trỏ tới phần tử có kiểu mà định nghĩa, kích thước tính byte kiểu liệu trỏ tới cộng thêm vào biến trỏ Điều với hai phép toán cộng trừ trỏ Chúng ta hoàn toàn thu kết viết: mychar = mychar + 1; myshort = myshort + 1; mylong = mylong + 1; Cần phải cảnh báo bạn hai toán tử tăng (++) giảm ( ) có quyền ưu tiên lớn tốn tử tham chiếu (*), biểu thức sau dẫn tới kết sai: *p++; *p++ = *q++; Lệnh tương đương với *(p++) điều mà thực tăng p (địa ô nhớ mà trỏ tới khơng phải giá trị trỏ tới) Lệnh thứ hai, hai toán tử tăng (++) thực sau giá trị *q gán cho *p sau q p tăng lên Lệnh tương đương với: *p = *q; p++; q++; Như nói trước, khuyên bạn nên dùng cặp ngoặc đơn để tránh kết không mong muốn Con trỏ trỏ tới trỏ C++ cho phép sử dụng trỏ trỏ tới trỏ khác giống trỏ tới liệu Để làm việc cần thêm dấu (*) cho mức tham chiếu char a; char * b; char ** c; a = 'z'; b = &a; c = &b; giả sử a,b,c lưu ô nhớ 7230, 8092 and 10502, ta mô tả đoạn mã sau: Điểm ví dụ biến c, nói theo cách khác nhau, cách tương ứng với giá trị khác nhau: c biến có kiểu (char **) mang giá trị 8092 *c biến có kiểu (char*) mang giá trị 7230 **c biến có kiểu (char) mang giá trị 'z' Con trỏ không kiểu Con trỏ không kiểu loại trỏ đặc biệt Nó trỏ tới loại liệu nào, từ giá trị nguyên thực xâu kí tự Hạn chế liệu trỏ tới tham chiếu tới cách trực tiếp (chúng ta khơng thể dùng tốn tử tham chiếu * với chúng) độ dài khơng xác định phải dùng đến toán tử chuyển kiểu liệu hay phép gán để chuyển trỏ không kiểu thành trỏ trỏ tới loại liệu cụ thể Một tiện ích cho phép truyền tham số cho hàm mà không cần rõ kiểu // integer increaser #include void increase (void* data, int type) { switch (type) { case sizeof(char) : (*((char*)data))++; break; case sizeof(short): (*((short*)data))++; break; case sizeof(long) : (*((long*)data))++; break; } } int main () { char a = 5; short b = 9; long c = 12; increase (&a,sizeof(a)); increase (&b,sizeof(b)); increase (&c,sizeof(c)); cout

Ngày đăng: 10/05/2018, 09:54

Tài liệu cùng người dùng

Tài liệu liên quan