tailieunhanh - Bài giảng Kỹ thuật lập trình: Bài 4 - TS. Đào Trung Kiên

Bài giảng Kỹ thuật lập trình: Bài 4 do TS. Đào Trung Kiên biên soạn trình bày các nội dung sau: Thay đổi địa chỉ trỏ tới, các phép toán với con trỏ, con trỏ và mảng, kiểu chuỗi ký tự, xử lý dòng lệnh, cấp phát bộ nhớ động | Bài 4: Con trỏ, mảng và quản lý bộ nhớ 1 EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Con trỏ Biến con trỏ là biến có chứa địa chỉ của một vùng trong bộ nhớ và có kiểu xác định Kích thước của con trỏ tương đương của int, tuy nhiên kích thước của vùng nhớ được trỏ tới là không xác định (con trỏ không chứa thông tin về kích thước) Khai báo bằng cách thêm dấu * ở trước tên biến: int *pInt; char *pChar; struct SinhVien *pSV; int* int 10 Truy xuất giá trị thông qua con trỏ dùng toán tử *: 2 int aInt = *pInt; (*pInt được hiểu là biến int mà pInt trỏ tới) *pChar = 'A'; printf("Gia tri: %d", *pInt); EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Thay đổi địa chỉ trỏ tới Vì giá trị của con trỏ là địa chỉ, nên khi thay đổi giá trị đó, biến con trỏ sẽ trỏ tới một vùng nhớ khác Gán địa chỉ mới cho con trỏ bằng phép gán như thông thường int *pInt2; pInt2 = pInt; Toán tử địa chỉ &: tạo ra một con trỏ bằng việc lấy địa chỉ pA a của một biến 3 int a; int* pA = &a; 10 /* pA trỏ tới a */ & là toán tử ngược với *, với một biến a bất kỳ thì *&a tương đương với a, và nếu p là một con trỏ thì &*p cũng tương đương với p EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Minh hoạ char c = 'A'; int *pInt; short s = 50; int a = 10; Địa chỉ các biến trong bộ nhớ theo thứ tự tăng dần ở đây chỉ có tính chất minh hoạ. Trong thực tế, stack được cấp phát từ cao xuống thấp biến khai báo sau sẽ có địa chỉ nhỏ hơn. pInt = &a; *pInt = 100; Địa chỉ 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 Biến char c int* pInt short s int a 'A' 1507 50 100 Giá trị pInt: *pInt: &a: a: 4 1507 100 1507 100 EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Con trỏ void* Là con trỏ nhưng không mang thông tin về kiểu Có thể được chuyển kiểu ngầm định sang bất kỳ kiểu con trỏ .

TỪ KHÓA LIÊN QUAN
crossorigin="anonymous">
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.