![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://thuvienso.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Tin học cơ sở 4 - Bài 8: Con trỏ
Số trang: 34
Loại file: pdf
Dung lượng: 1,019.46 KB
Lượt xem: 42
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Tin học cơ sở 4 - Bài 8: Con trỏ, cung cấp cho người học những kiến thức như: Con trỏ = địa chỉ biến; Tệp nhị phân; Dự án nhỏ: đọc tệp audio WAV. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Tin học cơ sở 4 - Bài 8: Con trỏ Tin học cơ sở 4 Buổi 8. Con trỏ Bộ môn Khoa học máy tính - 2017 Nội dung buổi học 1. Con trỏ = địa chỉ biến 2. Tệp nhị phân 3. Dự án nhỏ: đọc tệp audio WAV 2 Biến và bộ nhớ Khi khai báo biến Tên biến được gắn với một vùng nhớ chứa giá trị Khi sử dụng biến Máy tìm địa chỉ của biến trong bộ nhớ Đi tới địa chỉ đó và lấy giá trị của biến 3 Biến và bộ nhớ Toán tử & Lấy địa chỉ của biến cout Con trỏ Lập trình hiệu năng cao (high performance) Truyền địa chỉ biến (thay cho giá trị) Xử lý cấu trúc dữ liệu phức tạp Ví dụ: dữ liệu ở các vùng nhớ khác nhau Hàm không cần biết trước kiểu dữ liệu Chỉ cần biết địa chỉ của dữ liệu 5 Con trỏ Bản chất của biến con trỏ Giá trị là một số nguyên Là địa chỉ bộ nhớ Thường là địa chỉ của biến khác Có thể là địa chỉ của một biến con trỏ khác ptr x 12004 12000 12001 12002 12003 12004 12005 6 Con trỏ &x == ptr *ptr == x &(*ptr) == ptr *(&x) == x ptr x 12004 12000 12001 12002 12003 12004 12005 7 Khai báo con trỏ Cú pháp *; * = ; ptr x 12004 12000 12001 12002 12003 12004 12005 8 Khai báo con trỏ int x; int *ptr = &x; ptr trỏ đến x string line; string *pline = &line; ptr x 12004 12000 12001 12002 12003 12004 12005 9 Sử dụng con trỏ Đọc giá trị tại địa chỉ cout Truyền tham số bằng địa chỉ void squareValue(int x) { x = x * x; Không làm thay đổi } giá trị truyền vào hàm void squareByPtr(int *ptr) { *ptr = *ptr * *ptr; } Thay đổi giá trị do con trỏ chỉ tới int main() { int x = 5; squareValue(x); cout void swapByValue(int a, int b) { int tmp = a; Truyền tham số bằng địa chỉ a = b; b = tmp; Không làm thay đổi giá trị truyền vào hàm } void swapByPtr(int *a, int *b) { int tmp = *a; *a = *b; Thay đổi giá trị do *b = tmp; con trỏ chỉ tới } int main() { int x = 5, y = 6; swapByValue(x, y); ptr x cout Từ khóa const với con trỏ const int *ptr = &x; Không được sửa giá trị ptr trỏ đến (*ptr) int * const ptr = &x; Được sửa *ptr nhưng không được sửa ptr const int* const ptr = &x; Không được sửa cả *ptr và ptr 13 Con trỏ và mảng Tên mảng tĩnh là con trỏ đến phần tử đầu tiên của mảng string str[10]; string *p = str; cout Các phép toán trên con trỏ string str[10]; string *p = str; p++; // p str[1] p += 2; // p str[3] p--; // p str[2] cout Con trỏ đến con trỏ Khai báo int x; int *ptr = &x; int **pptr = &ptr; cout Tệp nhị phân Là tệp KHÔNG phải tệp văn bản Nội dung là một chuỗi byte (8 bit) Công dụng: Chứa ảnh, video âm thanh, dữ liệu nén Lưu nội dung một vùng bộ nhớ … hoặc bất kì nội dung nào Xem/sửa nội dung: Hex Editors (Frhed) 17 Lưu bộ nhớ xuống tệp nhị phân Hàm write của ofstream ostream& write (const char* s, streamsize n); s: địa chỉ bộ nhớ cần lưu n: kích thước (tính bằng byte) 18 Lưu bộ nhớ xuống tệp nhị phân int num[100]; ofstream outFile('number.bin', ios::binary); outFile.write( (char*) num, 100*sizeof(int) ); Chuyển kiểu con trỏ Tổng số byte của int* sang char* vùng nhớ cần lưu 19 Đọc tệp nhị phân lên bộ nhớ Hàm read của ifstream istream& read(char* s, streamsize n); s: địa chỉ bộ nhớ để chứa dữ liệu n: kích thước (tính bằng byte) Số byte thực sự đọc được – hàm gcount() 20
Nội dung trích xuất từ tài liệu:
Bài giảng Tin học cơ sở 4 - Bài 8: Con trỏ Tin học cơ sở 4 Buổi 8. Con trỏ Bộ môn Khoa học máy tính - 2017 Nội dung buổi học 1. Con trỏ = địa chỉ biến 2. Tệp nhị phân 3. Dự án nhỏ: đọc tệp audio WAV 2 Biến và bộ nhớ Khi khai báo biến Tên biến được gắn với một vùng nhớ chứa giá trị Khi sử dụng biến Máy tìm địa chỉ của biến trong bộ nhớ Đi tới địa chỉ đó và lấy giá trị của biến 3 Biến và bộ nhớ Toán tử & Lấy địa chỉ của biến cout Con trỏ Lập trình hiệu năng cao (high performance) Truyền địa chỉ biến (thay cho giá trị) Xử lý cấu trúc dữ liệu phức tạp Ví dụ: dữ liệu ở các vùng nhớ khác nhau Hàm không cần biết trước kiểu dữ liệu Chỉ cần biết địa chỉ của dữ liệu 5 Con trỏ Bản chất của biến con trỏ Giá trị là một số nguyên Là địa chỉ bộ nhớ Thường là địa chỉ của biến khác Có thể là địa chỉ của một biến con trỏ khác ptr x 12004 12000 12001 12002 12003 12004 12005 6 Con trỏ &x == ptr *ptr == x &(*ptr) == ptr *(&x) == x ptr x 12004 12000 12001 12002 12003 12004 12005 7 Khai báo con trỏ Cú pháp *; * = ; ptr x 12004 12000 12001 12002 12003 12004 12005 8 Khai báo con trỏ int x; int *ptr = &x; ptr trỏ đến x string line; string *pline = &line; ptr x 12004 12000 12001 12002 12003 12004 12005 9 Sử dụng con trỏ Đọc giá trị tại địa chỉ cout Truyền tham số bằng địa chỉ void squareValue(int x) { x = x * x; Không làm thay đổi } giá trị truyền vào hàm void squareByPtr(int *ptr) { *ptr = *ptr * *ptr; } Thay đổi giá trị do con trỏ chỉ tới int main() { int x = 5; squareValue(x); cout void swapByValue(int a, int b) { int tmp = a; Truyền tham số bằng địa chỉ a = b; b = tmp; Không làm thay đổi giá trị truyền vào hàm } void swapByPtr(int *a, int *b) { int tmp = *a; *a = *b; Thay đổi giá trị do *b = tmp; con trỏ chỉ tới } int main() { int x = 5, y = 6; swapByValue(x, y); ptr x cout Từ khóa const với con trỏ const int *ptr = &x; Không được sửa giá trị ptr trỏ đến (*ptr) int * const ptr = &x; Được sửa *ptr nhưng không được sửa ptr const int* const ptr = &x; Không được sửa cả *ptr và ptr 13 Con trỏ và mảng Tên mảng tĩnh là con trỏ đến phần tử đầu tiên của mảng string str[10]; string *p = str; cout Các phép toán trên con trỏ string str[10]; string *p = str; p++; // p str[1] p += 2; // p str[3] p--; // p str[2] cout Con trỏ đến con trỏ Khai báo int x; int *ptr = &x; int **pptr = &ptr; cout Tệp nhị phân Là tệp KHÔNG phải tệp văn bản Nội dung là một chuỗi byte (8 bit) Công dụng: Chứa ảnh, video âm thanh, dữ liệu nén Lưu nội dung một vùng bộ nhớ … hoặc bất kì nội dung nào Xem/sửa nội dung: Hex Editors (Frhed) 17 Lưu bộ nhớ xuống tệp nhị phân Hàm write của ofstream ostream& write (const char* s, streamsize n); s: địa chỉ bộ nhớ cần lưu n: kích thước (tính bằng byte) 18 Lưu bộ nhớ xuống tệp nhị phân int num[100]; ofstream outFile('number.bin', ios::binary); outFile.write( (char*) num, 100*sizeof(int) ); Chuyển kiểu con trỏ Tổng số byte của int* sang char* vùng nhớ cần lưu 19 Đọc tệp nhị phân lên bộ nhớ Hàm read của ifstream istream& read(char* s, streamsize n); s: địa chỉ bộ nhớ để chứa dữ liệu n: kích thước (tính bằng byte) Số byte thực sự đọc được – hàm gcount() 20
Tìm kiếm theo từ khóa liên quan:
Khoa học máy tính Bài giảng Tin học cơ sở 4 Tin học cơ sở 4 Con trỏ Tệp nhị phân Khai báo biến Lập trình hiệu năng cao Xử lý cấu trúc dữ liệu Khai báo con trỏTài liệu có liên quan:
-
Tóm tắt Đồ án tốt nghiệp Khoa học máy tính: Xây dựng ứng dụng quản lý quán cà phê
15 trang 505 1 0 -
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 387 6 0 -
32 trang 257 0 0
-
Đồ án nghiên cứu khoa học: Ứng dụng công nghệ cảm biến IoT vào mô hình thủy canh
30 trang 208 0 0 -
6 trang 207 0 0
-
Giải thuật và cấu trúc dữ liệu
305 trang 186 0 0 -
Giáo trình Lập trình C căn bản: Phần 2
71 trang 178 0 0 -
76 trang 159 2 0
-
3 trang 153 2 0
-
Bài giảng Tin học cơ sở 4: Các kiểu dữ liệu tự tạo - TS. Vũ Thị Hồng Nhạn
24 trang 119 0 0 -
Sửa chữa và lắp ráp máy tính tại nhà
276 trang 106 0 0 -
Tóm tắt luận án Tiến sĩ Kỹ thuật: Sử dụng ngôn ngữ trục trong dịch đa ngữ
27 trang 100 0 0 -
Bài giảng Khai phá dữ liệu: Chương 5 - TS. Võ Thị Ngọc Châu
116 trang 76 0 0 -
Giáo trình môn học Lý thuyết thông tin
136 trang 73 0 0 -
3 trang 72 1 0
-
27 trang 64 0 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2021-2022 có đáp án - Trường ĐH Đồng Tháp
5 trang 64 0 0 -
2 trang 59 2 0
-
40 trang 58 0 0
-
88 trang 56 0 0