1. Trang chủ
  2. » Giáo án - Bài giảng

Silde KIỂU CON TRỎ VÀ KIỂU CẤU TRÚC C++

56 858 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 836 KB

Nội dung

Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 1/56 CHƯƠNG 5: KIỂU CON TRỎ KIỂU CẤU TRÚC  Mục tiêu  Giới thiệu các kiến thức về kiểu Con trỏ kiểu Cấu trúc: khái niệm, cách định nghĩa, khai báo biến con trỏ, biến cấu trúc, cách truy xuất dữ liệu bằng con trỏ thao tác với từng thành phần của cấu trúc. Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 2/56 CHƯƠNG 5: KIỂU CON TRỎ KIỂU CẤU TRÚC  Nội dung  Kiểu con trỏKiểu cấu trúcCấu trúc tự trỏ  Mảng cấu trúcCon trỏ mảng  Mảng con trỏ Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 3/56 - Địa chỉ phép toán & - Khai báo biến con trỏ - Các phép toán trên con trỏ - Cấp phát giải phóng bộ nhớ cho con trỏ 5.1 Kiểu Con trỏ Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 4/56 - Địa chỉ Là một đại lượng dùng để định vị (xác định) vị trí - Đối tượng muốn xác định ở đây là các biến các phần tử (ô nhớ) chứa dữ liệu - Để xác định được địa chỉ của một đối tượng nào đó trong C++, ta sử dụng phép toán một ngôi lấy địa chỉ là “&” theo cú pháp: &Đốitượng \\ Dùng để xác định vị trí ô nhớ “Đốitượng” Địa chỉ phép toán & Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 5/56 Trường hợp, đối tượng là một biến, ta viết &Tenbien \\Lấy địa chỉ của biến Yêu cầu: Xác định địa chỉ của đối tượng nếu là mảng, chuỗi ký tự? Địa chỉ phép toán & Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 6/56 Ví dụ: string st="hello"; float a[]={5.0,4.0,3.0,2.0,1.0}; int i; char b[1]={'a'}; cout<<&st<<endl; for (i=0; i<=4; i++) cout<<&a[i]<<endl; cout<<&a<<endl; cout<<&b<<endl; cout<<b[0]<<endl; Địa chỉ phép toán & Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 7/56 - Con trỏ là một biến chứa địa chỉ của biến khác. - Giả sử P là con trỏ chứa địa chỉ của biến x thì ta gọi p trỏ tới x hay x được trỏ bởi p. - Thông qua con trỏ, ta có thể làm việc được với nội dung của ô nhớ mà con trỏ trỏ đến. Khai báo biến con trỏ Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 8/56 - Cú pháp: kiểu_dữ_liệu *tên_biến_con_trỏ; Trong đó: - Kiểu_dữ_liệu là kiểu dữ liệu của ô nhớ mà ta muốn con trỏ trỏ tới. - Dấu (*) nhằm báo cho trình biên dịch biết đang làm việc với kiểu dữ liệu là kiểu con trỏ - tên_biến_con_trỏ cũng được đặt theo quy tắc đặt tên => Khai báo con trỏ có tên tên_biến_con_trỏ trỏ tới ô nhớ chứa dữ liệu có kiểu_dữ_liệu Khai báo biến con trỏ Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 9/56 - Sử dụng con trỏ Để con trỏ có tênbiếncontrỏ trỏ đến biến (ô nhớ) có kiểudữliệu ta cần phải gán con trỏ tênbiếncontrỏ cho địa chỉ của biến(ô nhớ) cần trỏ đến: tênbiếncontrỏ = địa chỉ của ô nhớ (biến) cần trỏ tới Lưu ý: Không thể gán một hằng địa chỉ cụ thể cho biếncontrỏ Để lấy nội dung ô nhớ mà con trỏ trỏ tới ta sử dụng phép toán *. Khai báo biến con trỏ Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ kiểu cấu trúc 10/56 Ví dụ: float a[]={5.2, 4.3, 3.1, 2.25, 1.0}; int i=9, *q; float *p, *p1; p=a; p1=&a[3]; cout<<a<<endl; cout<<p<<endl; cout<<p1<<endl; cout<<a[3]<<endl; cout<<*p1<<endl; cout<<*p<<endl; cout<<*p+*p<<endl; q=&i; cout<<q<<endl; Khai báo biến con trỏ [...]... nghĩa một cấu trúc Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 22/56 Định nghĩa cấu trúc Cú pháp tổng quát để định nghĩa một kiểu cấu trúc như sau: struct Tên _kiểu_ cấu_ trúc { /*Bắt đầu một cấu trúc* / ; ; …… ; }; /*Kết thúc một cấu trúc Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 23/56 Định nghĩa cấu trúc Ví dụ:... Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 32/56 Con trỏ cấu trúc - Con trỏ cấu trúccon trỏ chứa địa chỉ của một biến cấu trúc hoặc một vùng nhớ có kiểu cấu trúc nào đó - Cách khởi tạo một con trỏ cấu trúc: + Gán địa chỉ của một biến cấu trúc cho một thành phần của mảng + Con trỏ được khởi tạo bằng việc sử dụng toán tử new để cấp phát bộ nhớ + Đối với con trỏ p trỏ đến mảng a, ta có thể... C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 19/56 5.2 Kiểu cấu trúc - Kiểu cấu trúc là gì? - Làm thế nào để định nghĩa một cấu trúc? - Cách khai báo biến cấu trúc? - Làm thế nào để làm việc với các thành phần của cấu trúc? Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 20/56 Khái niệm - Kiểu cấu trúckiểu dữ liệu bao gồm nhiều thành phần có kiểu khác nhau,... Kiểu con trỏ kiểu cấu trúc 12/56 Các phép toán trên con trỏ + Phép tăng giảm địa chỉ: p+n: Con trỏ trỏ đến thành phần thứ n sau p p-n: Con trỏ trỏ đến thành phần thứ n trước p Một đơn vị tăng của con trỏ bằng kích thước của biến được trỏ Chẳng hạn, biến có kiểu nguyên thì khi con trỏ tăng hay giảm một đơn vị tương đương với 2 bytes Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 13/56... thân cấu trúc này lại là thành phần của một cấu trúc khác lớn hơn, ta truy cập theo cú pháp: Tên_biến _cấu_ trúc. tên_biến _cấu_ trúc. tên_thành_phần Tên_biến _cấu_ trúc. tên_biến _cấu_ trúc. tên_biến _cấu_ tr úc.tên_thành_phần - Để làm việc với một biến cấu trúc, ta cần phải thao tác trên từng thành Ngôn ngữ Lập trình C ++ phần của nó Chương 5: Kiểu con trỏ kiểu cấu trúc 30/56 Truy cập thành phần của cấu trúc. .. 5: Kiểu con trỏ kiểu cấu trúc 34/56 Địa chỉ của các thành phần cấu trúc - Các thành phần của cấu trúc cũng giống như các biến Do đó, việc lấy địa chỉ của các thành phần này cũng tương tự như với biến Chẳng hạn: &Sinhvien.Hoten; &Lop[10].Gioitinh; &(p->Diem); Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 35/56 5.3 Cấu trúc tự trỏ Cách 1: typedef struct { struct Têncấutrúc tênbiếncấutrúc;... thường kiểu cấu trúc được khai báo trong tệp tiêu đề (.h) được sử dụng trong chương trình bằng lệnh #include Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 29/56 Truy cập thành phần của cấu trúc - Nếu biến cấu trúc là thành phần trực tiếp của một cấu trúc, ta truy cập theo cú pháp: Tên_biến _cấu_ trúc. tên_thành_phần - Nếu biến cấu trúc là thành phần trực tiếp của một cấu trúc mà... Thang; unsigned int Nam; }Ngay_den, Ngay_di; Chương 5: Kiểu con trỏ kiểu cấu trúc 25/56 Khai báo biến cấu trúc Lưu ý: - Có thể vừa khai báo vừa khởi tạo giá trị cho biến kiểu cấu trúc - Không được phép gán trực tiếp một bộ giá trị cụ thể cho một biến cấu trúc Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 26/56 Khai báo biến cấu trúc Ví dụ: struct Ngaythang { unsigned int Ngay, Thang,... dụng cho các con trỏ trỏ đến các phần tử của cùng một mảng dữ liệu Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 15/56 Cấp phát giải phóng bộ nhớ cho con trỏ - Cấp phát bộ nhớ: sử dụng toán tử new + Cấp phát tĩnh + Cấp phát động Cú pháp: p = new kieugiatri; p = new kieugiatri[so_phan_tu] Ngôn ngữ Lập trình C ++ Chương 5: Kiểu con trỏ kiểu cấu trúc 16/56 Cấp phát giải phóng... Chương 5: Kiểu con trỏ kiểu cấu trúc 21/56 Định nghĩa cấu trúc - Xác định các kiểu dữ liệu đơn giản của các biến thành phần được nhóm lại trong cấu trúc đó - Cần chỉ ra: tên của cấu trúc các thành phần của nó Phân biệt thành phần này với thành phần khác thông qua kiểu dữ liệu, tên biến kết thúc bằng dấu chấm phẩy (;) Các thành phần của cấu trúc được đặt trong cặp dấu móc nhọn ({}) dùng dấu . KIỂU CON TRỎ VÀ KIỂU CẤU TRÚC  Nội dung  Kiểu con trỏ  Kiểu cấu trúc  Cấu trúc tự trỏ  Mảng cấu trúc  Con trỏ và mảng  Mảng con trỏ Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ và kiểu cấu. Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ và kiểu cấu trúc 1/56 CHƯƠNG 5: KIỂU CON TRỎ VÀ KIỂU CẤU TRÚC  Mục tiêu  Giới thiệu các kiến thức về kiểu Con trỏ và kiểu Cấu trúc: khái niệm,. trỏ Ngôn ngữ Lập trình C++ Chương 5: Kiểu con trỏ và kiểu cấu trúc 9/56 - Sử dụng con trỏ Để con trỏ có tênbiếncontrỏ trỏ đến biến (ô nhớ) có kiểudữliệu ta cần phải gán con trỏ tênbiếncontrỏ

Ngày đăng: 16/04/2014, 13:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w