Danh mục

Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 5, 6) – Nguyễn Hải Châu

Số trang: 5      Loại file: pdf      Dung lượng: 183.03 KB      Lượt xem: 18      Lượt tải: 0    
Jamona

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng tuần 5 và tuần 6 giúp người học tìm hiểu về con trỏ: Cách khai báo, sử dụng, cấp phát và giải phóng bộ nhớ; hiểu được mối liên quan giữa con trỏ và mảng; biết được cách khai báo, xây dựng và sử dụng hàm; phân biệt được các cách truyền đối khác nhau cho hàm; đối ngầm định, hàm trùng tên;...
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 5, 6) – Nguyễn Hải Châu Nội dung z Con trỏ và số học địa chỉ NGÔN NGỮ LẬP TRÌNH {Con trỏ C/C++ {Con trỏ và mảng z Hàm và chương trình Nguyễn Hải Châu {Khai báo và sử dụng hàm Khoa Công nghệ thông tin {Các cách truyền đối cho hàm Trường Đại học Công nghệ (Bài giảng tuần 5-6) 1 2 Khái niệm con trỏ z Con trỏ là một biến chứa địa chỉ của một biến khác, hoặc địa chỉ của một hàm Con trỏ và số học địa chỉ z Nếu p là con trỏ chứa địa chỉ của biến x ta gọi p trỏ tới x và x được trỏ bởi p z Để lấy địa chỉ của biến x, ta dùng phép toán &: &x z Để lấy nội dung của con trỏ, ta dùng phép toán *: *p 3 4Ví dụ về con trỏ, phép toán & và * Các phép toán với con trỏ z Phép toán * và & int a=2; // a là một biến integer z Phép toán gán: p = q; p và q là hai con trỏ int *p; // p là một con trỏ z Phép toán tăng giảm địa chỉ, tự tăng giảm {p+n, p-n p = &a; // p chứa địa chỉ của a {p++, p--, ++p, --p cout Cấp phát bộ nhớ cho con trỏ Giải phóng bộ nhớ đã cấp phátz Để cấp phát bộ nhớ cho con trỏ, ta dùng z Để cấp phát bộ nhớ cho con trỏ, ta dùng chỉ thị new: chỉ thị delete: p = new ; // cấp phát 1 phần tử delete p; // nếu p được cấp phát 1 phần tử delete[] p; // nếu p được cấp phát n>1 phần tử p = new [n] ; // cấp phát n phần tử z Ví dụ:z Ví dụ: int *p, *q; int *p, *q; p = new int; // Cấp phát 1 phần tử p = new int; // Cấp phát 1 phần tử q = new int[10]; // Cấp phát 10 phần tử q = new int[10]; // Cấp phát 10 phần tử delete p; // Giải phóng p delete[] q; // Giải phóng q 7 8Con trỏ và mảng một chiều Con trỏ và mảng hai chiềuz Con trỏ trỏ đến mảng cũng tương tự trỏ Ví dụ: đến các biến khác, tức gán địa chỉ của float a[2][3], *p; mảng (chính là tên mảng) cho con trỏ a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]z Địa chỉ của mảng là địa chỉ của thành a a+1 phần đầu tiến (0) nên a+i sẽ là địa chỉ thành phần thứ i của mảng p = a;z Giả sử có mảng int a[10]: a[i][j] ~ *(p+3*i+j) {a[i] chính là *(a+i) {a+i chính là &a[i] 9 10Mảng con trỏz Khai báo: { *[];z Ví dụ: Hàm int *a[10]; // Mảng 10 con trỏ số nguyênz Ví dụ: khai báo tham số của hàm main: main(argc, argv) int argc; char *argv[]; 11 12 2Khái niệm về hàm ...

Tài liệu được xem nhiều: