1. Trang chủ
  2. » Công Nghệ Thông Tin

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

13 25 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 13
Dung lượng 218,58 KB

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

Nội dung

Bài giảng Kỹ thuật lập trình nâng cao - Chương 2: Lập trình con trỏ cung cấp cho người học các kiến thức: Đại chỉ của biến, con trỏ, cấp phát và giải phóng vùng nhớ, con trỏ và mảng một chiều,... Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

CHƯƠNG 2

LẬP TRÌNH CON TRỎ

1

TRẦN MINH THÁI

[e] minhthai@itc.edu.vn

[w] www.minhthai.edu.vn

Trang 2

ĐỊ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 3

ĐỊA CHỈ CỦA BIẾN (TT)

Ví dụ khai báo:

float x;

int a;

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

Trang 4

ĐỊA CHỈ CỦA BIẾN (TT)

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

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

tự, …

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

• Ví dụ:

void main()

{

int x=7;

float y=10.5;

cout<<"Dia chi cua bien x = "<<&x<<endl;

cout<<"Dia chi cua bien y = "<<&y;

Kết quả

Dia chi cua bien x = 0014FC00 Dia chi cua bien y = 0014FBF4

Trang 5

CON TRỎ

• Con trỏ là một biến để chứa địa chỉ, 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

• Cách khai báo con trỏ

• Ví dụ:

int *px, y;

float *pm, n;

• Cách lấy giá trị của con trỏ

Kiểu dữ liệu * TênConTrỏ

* TênConTrỏ

Trang 6

VÍ DỤ

void main()

{

int *px, y;

float *pa, b;

y=10;

b=14.5;

px= & y;

pa= & b;

cout<<"Gia tri cua px = "<< *px <<endl;

cout<<"Gia tri cua pa = "<< *pa ;

}

Kết quả

Gia tri cua px = 10

Gia tri cua pa = 14.5

Lấy địa chỉ của biến

y gán vào px

Lấy giá trị của con

trỏ px

Trang 7

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ú pháp: biến con trỏ = new <kdl>;

• Giải phóng vùng nhớ

Cú pháp: delete biến con trỏ;

VD:

int *a;

a = new int; //Cấp phát vùng nhớ cho a

……

delete a;

Trang 8

CON TRỎ VÀ MẢNG MỘT CHIỀU

• Khai báo

<kdl> * tên mảng;

• Cấp phát vùng nhớ

tên mảng = new <kdl>[kích thước];

VD:

int *pa;

pa = new int[50];

pa

Trang 9

CON TRỎ VÀ MẢNG MỘT CHIỀU

void NhapMang(int *a, int n)

{

for (int i = 0; i < n; i++) {

cout << "Nhap gia tri o vi tri " << i << ": ";

cin >> *(a + i);

} }

void NhapMang(int a [], int n)

{

for (int i = 0; i < n; i++) {

cout << "Nhap gia tri o vi tri " << i << ": ";

cin >> a[i];

} }

Trang 10

CON TRỎ HÀM

• Khai báo:

<kdl>(*Tên hàm)(tham số);

VD:

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 11

CON TRỎ HÀM

int ChuVi(int a, int b)

{

return (a + b) * 2;

}

int DienTich(int a, int b)

{

return a*b;

}

int Tinh(int a, int b, int (*Ham)(int, int))

{

int kq = (*Ham)(a, b);

return kq;

}

Trang 12

CON TRỎ HÀM

void main()

{

int a = 10, b = 6;

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

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

cout << "Chu vi cua hcn = " << p;

}

Trang 13

BÀI TẬP

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

Ngày đăng: 02/11/2020, 11:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN