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

28 339 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 tố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 luôn 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 thì 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 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: 15/05/2017, 10:28

Từ khóa liên quan

Mục lục

  • Slide 1

  • Nội dung

  • Slide 3

  • 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

  • Biến con trỏ

  • Con trỏ - Ví dụ

  • Slide 11

  • 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ớ - stdlib.h

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

  • Slide 17

  • Con trỏ và mảng một chiều

  • Con trỏ và mảng một chiều

  • Con trỏ và mảng một chiều

Tài liệu cùng người dùng

Tài liệu liên quan