Sử dụng con trỏ, phép toán *

Một phần của tài liệu Bài Giảng Kỹ Thuật Lập Trình (Trang 57)

• Để con trỏ p trỏ đến biến x ta phải dùng phép gán p = địa chỉ của x. − Nếu x không phải là mảng ta viết: p = &x.

− Nếu x là mảng ta viết: p = x hoặc p = &x[0].

• Không gán p cho một hằng địa chỉ cụ thể. Ví dụ viết p = 200 là sai. • Phép toán * cho phép lấy nội dung nơi p trỏ đến, ví dụ để gán nội dung nơi p trỏ đến cho biến f ta viết f = *p.

• & và * là 2 phép toán ngược nhau. Cụ thể nếu p = &x thì x = *p. Từ đó nếu p trỏ đến x thì bất kỳ nơi nào xuất hiện x đều có thể thay được bởi *p và ngược lại.

Ví dụ 1 :

int i, j ; // khai báo 2 biến nguyên i, j

p = &i; // cho p trỏ tới i q = &j; // cho q trỏ tới j

cout << &i ; // hỏi địa chỉ biến i

cout << q ; // hỏi địa chỉ biến j (thông qua q) i = 2; // gán i bằng 2

*q = 5; // gán j bằng 5 (thông qua q) i++ ; cout << i ; // tăng i và hỏi i, i = 3

(*q)++ ; cout << j ; // tăng j (thông qua q) và hỏi j, j = 6 (*p) = (*q) * 2 + 1; // gán lại i (thông qua p)

cout << i ; // 13

Qua ví dụ trên ta thấy mọi thao tác với i là tương đương với *p, với j là tương đương với *q và ngược lại.

1.3. Các phép toán với con trỏ

Trên đây ta đã trình bày về 2 phép toán một ngôi liên quan đến địa chỉ và con trỏ là & và *. Phần này chúng ta tiếp tục xét với các phép toán khác làm việc với con trỏ.

Một phần của tài liệu Bài Giảng Kỹ Thuật Lập Trình (Trang 57)

Tải bản đầy đủ (PDF)

(176 trang)