1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng lập trình c nâng cao chương 3 lập trình con trỏ

22 1,3K 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 22
Dung lượng 148,37 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Biến khai báo trong khối lệnh {}/ trong hàm: Động nếu không dùng static  Được cấp phát khi chương trình thực thi vào khối  Bộ nhớ được giải phòng khi ra khỏi khối... Địa chỉ của biến

Trang 2

Bài tập

Trang 3

Biến khai báo trong khối lệnh {}/ trong hàm:

 Động nếu không dùng static

 Được cấp phát khi chương trình thực thi vào khối

 Bộ nhớ được giải phòng khi ra khỏi khối

Trang 4

Địa chỉ của biến

Thông tin của một biến bao gồm:

Tên biến

Kiểu dữ liệu của biến

Giá trị của biến

Mỗi biến sẽ được lưu trữ tại một vị trí xác định trong

ô nhớ, nếu kích thước của biến có nhiều byte thì máy tính sẽ cấp phát một dãy các byte liên tiếp nhau, địa chỉ của biến sẽ lưu byte đầu tiên trong dãy các byte này

Trang 5

Địa chỉ của biến

Byte 1 Byte 2 Byte 3 Byte 4

Địa chỉ biến x

Các ô

nhớ của

biến x

Byte 100 Byte 101 Byte 102 Byte 103

Địa chỉ biến a

Các ô nhớ của biến a

Ví dụ khai báo:

float x;

int a;

Trang 6

Địa chỉ của biến

Địa chỉ của biến luôn luôn là một số nguyên (hệ hexa) cho

dù biến đó chứa giá trị là số nguyên, số thực, ký tự, …

Cách lấy địa chỉ của biến: & tênbiến

printf("Dia chi cua bien x = %x\n", &x);

printf("Dia chi cua bien y = %x“, &y);

}

K t qu ết quả ả Dia chi cua bien x = 0014FC00 Dia chi cua bien y = 0014FBF4

Trang 7

Biến con trỏ

Biến con trỏ là một biến để chứa địa chỉ của ô chứa

dữ liệu, có nhiều loại con trỏ tùy thuộc vào địa chỉ của mỗi loại kiểu biến

Trang 8

printf("Gia tri cua px = %d\n", *px);

printf("Gia tri cua pa = %f", *pa);

Trang 9

printf("Dia chi cua bien y = %x\n", &y);

printf("Dia chi cua bien px = %x\n", px);

printf("Dia chi cua bien b = %x\n", &b);

printf("Dia chi cua bien pa = %x\n", pa);

}

Dia chi cua bien y = d7f7dc Dia chi cua bien px = d7f7dc Dia chi cua bien b = d7f7c4 Dia chi cua bien pa = d7f7c4

Trang 11

px = (int *)calloc(1, sizeof(int));

printf("Nhap vao gia tri cho con tro px: ");

Trang 12

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

Biến con trỏ phải được cấp phát vùng nhớ trước khi sử dụng

Cách 1: dùng calloc

//khai báo con trỏ p

int *p;

//cấp phát 100 ô nhớ mỗi ô chiếm 2bytes

p=(int *) calloc (100, sizeof (int));

Trang 13

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

Biến con trỏ phải được cấp phát vùng nhớ trước khi

sử dụng

Cách 2: dùng malloc

//Khai báo con trỏ px

Trang 16

int *a, n=4;

a=( int

*)malloc(n);

NhapMang(a, n); XuatMang(a, n); free(a);

}

Hoặc &a[i]

Hoặc a[i]

Trang 17

Thay đổi kích thước của con trỏ đã cấp phát

Cú pháp: realloc(tên con trỏ, kích thước mới); void main()

Trang 18

int *Tong(int a, int b);

Thích hợp cho việc tùy chọn (switch) gọi thực hiện trong danh sách các hàm

Trang 20

int (*Ham)(int, int) = ChuVi;

int p = Tinh(a, b, Ham);

printf("Chu vi cua hcn = %d", p);}

Trang 21

Bài tập

1 Viết chương trình gồm các chức năng cơ bản xử lý

mảng một chiều số nguyên dùng con trỏ.

2 Viết chương trình gồm các chức năng cơ bản xử lý

ma trận số nguyên dùng con trỏ.

3 Dùng kỹ thuật con trỏ hàm, viết chương trình tính

tổng, hiệu, tích và thương của hai phân số phụ thuộc vào người dùng chọn chức năng nào

Trang 22

Q&A

Ngày đăng: 04/09/2015, 15:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm