Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Minh Thái

28 9 0
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Minh Thái

Đ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

Bài giảng Kỹ thuật lập trình - Chương 4: Lập trình con trỏ cung cấp cho người học các kiến thức: Khái niệm, khai báo, các phép toán trên con trỏ, con trỏ và mảng một chiều, con trỏ hàm. Mời các bạn cùng tham khảo nội dung chi tiết.

Lập trình C Chương Lập trình trỏ (3 tiết) Trần Minh Thái Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Cập nhật: 10/03/2017 Nội dung • Khái niệm • Khai báo • Các phép toán trỏ • Con trỏ mảng chiều • Con trỏ hàm • Bài tập KHÁI NIỆM VÀ KHAI BÁO Biến tĩnh biến động • Các biến khai báo bên bên ngồi hàm • Biến khai báo ngồi hàm biến tồn cục có vị trí nhớ cố định • Biến khai báo khối lệnh {}/ hàm: • Động khơng dùng static • Được cấp phát chương trình thực thi vào khối • Bộ nhớ giải phóng khỏi khối Địa biến Thông tin biến bao gồm: • Tên biến • Kiểu liệu biến • Giá trị biến Mỗi biến lưu trữ vị trí xác định nhớ, kích thước biến có nhiều byte máy tính cấp phát dãy byte liên tiếp nhau, địa biến lưu byte dãy byte Địa biến Ví dụ khai báo: float x; int a; Địa biến x Byte Các ô nhớ biến x Byte Byte Byte Địa biến a Byte 100 Các ô nhớ biến a Byte 101 Byte 102 Byte 103 Địa biến • Địa biến ln ln số nguyên (hệ hexa) cho dù biến chứa giá trị số nguyên, số thực, ký tự, … • Cách lấy địa biến: & tênbiến Địa biến int main() { int x = 7; float y = 10.5; printf("x = %d tai dia chi: %x\n", x, &x); printf("y = %.2f tai dia chi: %x", y, &y); getch(); return 0; } Kết x = tai dia chi: 61ff2c y = 10.50 tai dia chi: 61ff28 Biến trỏ • Biến trỏ biến để chứa địa ô chứa liệu, có nhiều loại trỏ tùy thuộc vào địa loại kiểu biến • Cú pháp Kiểu liệu * tênConTrỏ; • Ví dụ: int *px; float *pm; • Lấy giá trị trỏ *tênConTrỏ; Con trỏ - Ví dụ int main() { int *px, y; float *pa, b; Lấy địa biến y y = 10; gán vào px b = 14.5; Lấy giá trị trỏ px = &y; px pa = &b; printf("px: gia tri = %d, dia chi = %x\n", *px, px); printf("pa: gia tri = %.2f, dia chi = %x", *pa, pa); getch(); return 0; } Kết px: gia tri = 10, dia chi = 61ff24 pa: gia tri = 14.50, dia chi = 61ff20 10 Sử dụng biến trỏ int main() Cấp phát nhớ cho px { int *px; px = (int *) calloc(1, sizeof(int)); printf("Nhap vao gia tri cho tro px: "); scanf("%d", px); printf("Gia tri cua px = %d", *px); free(px); getch(); return 0; } 14 Cấp phát giải phóng vùng nhớ - stdlib.h • Cách 1: dùng calloc //khai báo trỏ p int *p; //cấp phát 100 ô nhớ ô kích thước int p=(int *) calloc (100, sizeof (int)); 15 Cấp phát giải phóng vùng nhớ • Cách 2: dùng malloc //Khai báo trỏ px int *px; //Cấp phát 100 ô nhớ kiểu int cho trỏ px px = (int *) malloc (100); • Sau sử dụng xong giải phóng vùng nhớ bằng hàm free free(p) ; // giải phóng vùng nhớ cho trỏ p 16 CON TRỎ VÀ MẢNG MỘT CHIỀU 17 Con trỏ mảng chiều int a[7]; int *px; px = a; //px trỏ tới phần tử vị trí px = px + 4; //px trỏ tới phần tử vị trí a[0] a[1] a[2] a[3] a[4] a[5] a[6]               px 18 Con trỏ mảng chiều void NhapMang(int *a, int n) { for(int i=0; i

Ngày đăng: 11/05/2021, 01:22

Mục lục

    Biến tĩnh và biến động

    Địa chỉ của biến

    Địa chỉ của biến

    Địa chỉ của biến

    Địa chỉ của biến

    Con trỏ - Ví dụ

    Sử dụng biến con trỏ

    Sử dụng biến con trỏ

    Sử dụng biến con trỏ

    Cấp phát và giải phóng vùng nhớ