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

Dữ liệu kiểu con trỏ ppsx

32 263 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

Tiêu đề Dữ liệu kiểu con trỏ
Tác giả Đặng Bình Phương
Trường học Trường Đại học Khoa học Tự nhiên
Chuyên ngành Tin học cơ sở
Thể loại Bài giảng
Định dạng
Số trang 32
Dung lượng 1,7 MB

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

Nội dung

 Liên kết địa chỉ ô nhớ đó với tên biến.. BB 12 Các cách truyền đối số  Truyền giá trị tham trị Tin học cơ sở 2 - Đặng Bình Phương... Truyền giá trị tham trịTin học cơ sở 2 - Đặng Bình

Trang 1

Khoa Công nghệ thông tin

Bộ môn Tin học cơ sở

Trang 3

• RAM 512MB được đánh địa chỉ từ 0 đến 229 – 1

• RAM 2GB được đánh địa chỉ từ 0 đến 231 – 1

Tin học cơ sở 2 - Đặng Bình Phương

Trang 4

BB

4

 Quy trình xử lý của trình biên dịch

 Dành riêng một vùng nhớ với địa chỉ duy nhất

để lưu biến đó.

 Liên kết địa chỉ ô nhớ đó với tên biến.

ô nhớ đã liên kết với tên biến.

 Ví dụ: int a = 0x1234; // Giả sử địa chỉ 0x0B

Khai báo biến trong C

Tin học cơ sở 2 - Đặng Bình Phương

0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17

a

34 12 00 00

Trang 5

Tin học cơ sở 2 - Đặng Bình Phương

Trang 6

sử dụng cũng cần phải được khai báo

 Ví dụ

kiểu char (1 byte).

bytes) còn p2 là biến kiểu int bình thường.

Tin học cơ sở 2 - Đặng Bình Phương

<ki ểu dữ liệu> * <tên bi ến con trỏ>;

char * ch1, * ch2;

int * p1, p2;

Trang 7

 Lưu ý khi khai báo kiểu dữ liệu mới

Tin học cơ sở 2 - Đặng Bình Phương

typedef <ki ểu dữ liệu> * <tên ki ểu con trỏ>;

<tên ki ểu con trỏ> <tên biến con trỏ>;

typedef int *pint;

int *p1;

pint p2, p3;

Trang 8

Tin học cơ sở 2 - Đặng Bình Phương

Trang 9

chỉ nào đó (không biết trước)

 Đặt địa chỉ của biến vào con trỏ (toán tử & )

 Ví dụ

Tin học cơ sở 2 - Đặng Bình Phương

<tên bi ến con trỏ> = & <tên bi ến>;

int a, b;

int *pa = & a, *pb;

pb = & b;

Trang 10

BB

10

Sử dụng con trỏ

 Truy xuất đến ô nhớ mà con trỏ trỏ đến

 Ví dụ

Tin học cơ sở 2 - Đặng Bình Phương

int a = 5, *pa = & a;

printf(“%d\n”, pa); // Giá tr ị biến pa

printf(“%d\n”, *pa); // Giá tr ị vùng nhớ pa trỏ đến printf(“%d\n”, &pa); // Địa chỉ biến pa

Trang 11

BB

11

Kích thước của con trỏ

 Kích thước của con trỏ

con trỏ là như nhau:

• Môi trường MD-DOS (16 bit): 2 bytes (64KB)

• Môi trường Windows (32 bit): 4 bytes (4GB)

Tin học cơ sở 2 - Đặng Bình Phương

Trang 12

BB

12

Các cách truyền đối số

 Truyền giá trị (tham trị)

Tin học cơ sở 2 - Đặng Bình Phương

Trang 13

Truyền giá trị (tham trị)

Tin học cơ sở 2 - Đặng Bình Phương

Trang 14

BB

14

Các cách truyền đối số

 Truyền địa chỉ (con trỏ)

Tin học cơ sở 2 - Đặng Bình Phương

Trang 15

Truyền địa chỉ (con trỏ)

Tin học cơ sở 2 - Đặng Bình Phương

Trang 16

BB

16

Các cách truyền đối số

 Truyền tham chiếu (C++)

Tin học cơ sở 2 - Đặng Bình Phương

Trang 17

Truyền tham chiếu (C++)

Tin học cơ sở 2 - Đặng Bình Phương

Trang 18

trong C Mức độ thành thạo C được đánh giá qua mức độ sử dụng con trỏ.

 Nắm rõ quy tắc sau, ví dụ int a, *pa = &a;

• *pa và a đều chỉ nội dung của biến a.

• pa và &a đều chỉ địa chỉ của biến a.

khởi tạo Kết quả sẽ không lường trước được.

Tin học cơ sở 2 - Đặng Bình Phương

int *pa; *pa = 1904;

Trang 19

 không thể thay đổi giá trị của hằng này.

Trang 20

Tin học cơ sở 2 - Đặng Bình Phương

int array[3], * parray;

Trang 21

Phép toán số học trên con trỏ

Tin học cơ sở 2 - Đặng Bình Phương

Trang 22

Phép toán số học trên con trỏ

Tin học cơ sở 2 - Đặng Bình Phương

p = &array[2]

–1 –2

0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17

int array[3];

Trang 23

giữa hai con trỏ (cùng kiểu)

Phép toán số học trên con trỏ

Tin học cơ sở 2 - Đặng Bình Phương

Trang 24

Phép toán số học trên con trỏ

Tin học cơ sở 2 - Đặng Bình Phương

Trang 28

Tin học cơ sở 2 - Đặng Bình Phương

Trang 29

Tin học cơ sở 2 - Đặng Bình Phương

void xuat(int a[10], int n)

{

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

printf(“%d”, *(a++)); // OK }

void main()

{

int a[10], n = 10;

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

printf(“%d”, *( a++ )); // L ỗi }

 Đối số mảng truyền cho hàm không phải hằng

con tr ỏ

Trang 30

tăng/giảm giá trị của nó n*sizeof(<kiểu dữ liệu mà nó trỏ đến>)

một con trỏ đến địa chỉ đầu của mảng và tăng/giảm nó.

chỉ phần tử đầu tiên của mảng.

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

Tin học cơ sở 2 - Đặng Bình Phương

Trang 31

<tên bi ến con trỏ cấu trúc> -> <tên thành ph ần>

( * <tên bi ến con trỏ cấu trúc>) <tên thành ph ần>

Ngày đăng: 12/08/2014, 22:21

TỪ KHÓA LIÊN QUAN

w