Bài giảng Lập trình hướng đối tượng C++ - Chương 5: Mảng - Con trỏ - Tham chiếu - Đại học Cần Thơ
Mục tiêu
Giới thiệu các cách sử dụng mảng, con trỏ, và tham chiếu
Nội dung
Mảng một chiều, nhiều chiều, bộ nhớ tĩnh
Con trỏ, tính toán con trỏ, bộ nhớ động
Con trỏ hàm, tham chiếu
Khoa Công Nghệ Thông Tin & Truyền ThôngĐại Học Cần ThơMẢNG - CON TRỎ - THAM CHIẾUCHƯƠNG 5:1Mảng, Con Trỏ, Tham ChiếuMục tiêuGiới thiệu các cách sử dụng mảng, con trỏ, và tham chiếuNội dungMảng một chiều, nhiều chiều, bộ nhớ tĩnhCon trỏ, tính toán con trỏ, bộ nhớ độngCon trỏ hàm, tham chiếuChương 52MảngMảng (array)Gồm một tập các đối tượng cùng kiểu và được sắp xếp liên tiếp trong bộ nhớMỗi phần tử mảng được xác định bởi một chỉ số biểu thị vị trí của phần tử trong mảngPhần tử đầu tiên của mảng luôn có chỉ số 0 Số lượng phần tử trong mảng được gọi là kích thước của mảng (cố định; xác định trước) Gồm mảng một chiều và mảng đa chiềuChương 53Biến MảngĐược định nghĩa bằng cách đặc tả kích thước mảng và kiểu các phần tử của nó Ví dụ: int heights[10];Truy xuất 1 phần tử qua chỉ số mảngVí dụ: heights[0]= 210; cout<< heights[3];Truy xuất phần tử không tồn tại lỗi vượt ngoài biênVí dụ: cout<<heights[-1]; cout<<heights[10];Chương 54Bộ Khởi Tạo MảngMỗi mảng có một bộ khởi tạo mảngVí dụChuỗi là một mảng ký tựVí dụ: so sánh sự khác nhau của char str[] = "HELLO"; và char str[] = {'H', 'E', 'L', 'L', 'O'};int nums[3] = {5, 10, 15};Bộ khởi tạo mảngint nums[3] = {5, 10};nums[2] = ?int nums[ ] = {5, 10, 15};Kích thước mảng ? Chương 55Mảng Đa ChiềuMùa xuânMùa hèMùa thuMùa đôngSydney26342217Melbourne24321913Brisbane28382520int seasonTemp[3][4];hàng đầuhàng haihàng baCách tổ chức trong bộ nhớChương 56Con TrỏCon trỏ đơn giản chỉ là địa chỉ của một vị trí bộ nhớ và cung cấp cách gián tiếp để truy xuất dữ liệu trong bộ nhớVí dụ it num = 10;int *ptr1 = #cout << *ptr1;10num10001000ptr12000Chương 57Bộ Nhớ Động - TĩnhBộ nhớ động (heap)Vùng nhớ được cấp phát động trong thời gian thực thiBộ nhớ tính (stack)Vùng nhớ được sử dụng để lưu trữ các biến toàn cục và lời gọi hàmHai toán tử được sử dụngnew: cấp phátdelete: thu hồivoid Foo (void){ int *ptr = new int; char *str = new char[10]; //... delete ptr; delete [ ]str; }Chương 58Tham ChiếuMột tham chiếu (reference) là một biệt hiệu (alias) cho một đối tượng. Ví dụGhi chúMột tham chiếu phải luôn được khởi tạo khi nó được định nghĩaCó thể khởi tạo tham chiếu tới một hằng double num1 = 3.14;double &num2 = num1; 3.14num11000num2Chương 59Truyền Bằng Trị - Con Trỏ - Tham Chiếu1 2 3 4 56789101112131415161718 // Truyền bằng trị (đối tượng)void Swap1 (int x, int y){ int temp = x; x = y; y = temp;}// Truyền bằng địa chỉ (con trỏ)void Swap2 (int *x, int *y){ int temp = *x; *x = *y; *y = temp;}// Truyền bằng tham chiếuvoid Swap3 (int &x, int &y){ int temp = x; x = y; y = temp;}int main (void){ int i = 10, j = 20; Swap1(i, j); cout << i << ", " << j << '\n'; Swap2(&i, &j); cout << i << ", " << j << '\n'; Swap3(i, j); cout << i << ", " << j << '\n';}?Chương 510
File đính kèm:
- Lesson05.ppt