1. Trang chủ
  2. » Thể loại khác

Kieu con tro docx

29 1,4K 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 29
Dung lượng 808 KB

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

Nội dung

Khái niệm con trỏ Một con trỏ là một biến chứa địa chỉ ô nhớ.. Con trỏ và địa chỉLưu ý: Khi gán địa chỉ của 1 biến cho 1 biến con trỏ, mọi sự thay đổi trên nội dung ô nhớ con trỏ chỉ t

Trang 2

Khái niệm con trỏ

 Một con trỏ là một biến chứa địa chỉ ô nhớ Địa

chỉ này là vị trí của một đối tượng khác trong bộ nhớ.

Trang 3

Con trỏ và địa chỉ

Phép lấy địa chỉ của 1 biến

 Kí hiệu: &

 Cách sử dụng: & <Tên biến>

 Ví dụ: int *pi= & a; // pi giữ địa chỉ của các biến nguyên a

Phép toán lấy giá trị tại một địa chỉ mà một con trỏ đang trỏ tới

pi = & a; //pi giữ địa chỉ của biến a

*pi là giá trị của a và bằng 10

Trang 6

Con trỏ và địa chỉ

Lưu ý:

Khi gán địa chỉ của 1 biến cho 1 biến con trỏ, mọi sự

thay đổi trên nội dung ô nhớ con trỏ chỉ tới sẽ làm giá trị của biến thay đổi theo.

Khi ta khai báo:

int a=10;int *pi;

pi= & a; // pi giữ địa chỉ biến a

*pi=*pi +2;

Trang 7

*pb=30;

printf("\nGia tri cua bien a sau khi thay doi la %d",a);

printf("\nGia tri cua bien b sau khi thay doi la %d",b);

getch();

}

Trang 8

C

Trang 10

Khai báo con trỏ

Sử dụng từ khóa typedef

Ví dụ

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 12

Con trỏ và mảng 1 chiều

Giữa mảng và con trỏ có một sự liên hệ rất chặt chẽ:

– Những phần tử của mảng được xác định bằng chỉ số trong

mảng và cũng có thể được xác định qua biến con trỏ

– Tên của một mảng tương đương với địa chỉ phần tử đầu

tiên của nó, tương tự một con trỏ tương đương với địa chỉ của phần tử đầu tiên mà nó trỏ tới.

Kiểu mảng Ví dụ Kiểu Con trỏ Ví dụ

&<Tên mảng>[0] &A[0] hoặc A <Tên con trỏ > p

Trang 15

return t;

} int main() {

int a[20],k,i;

nhapmang(a,k);

xuatmang(a,k);

printf("tong la:%d",tong(a,k)); getch();

}

Trang 17

printf("\nNoi dung cua con tro p

ban dau la\n");

for(i=0;i<20;i++)

printf("%d",*(p+i));

for(i=0;i<20;i++) *(p+i)=*(p+i)+1;

printf("\nNoi dung cua mang a sau khi tang len 1 la\n");

for(i=0;i<4;i++) for(j=0;j<5;j++) printf("%d",a[i][j]);

printf("\nNoi dung cua con tro p sau khi tang len 1 la\n");

for(i=0;i<20;i++) printf("%d",*(p+i));

getch();

}

Trang 18

Các phép toán trên con trỏ

Có 4 phép toán liên quan tới con trỏ và địa chỉ:

- Phép gán

- Phép tăng giảm địa chỉ

- Phép truy cập bộ nhớ

- Phép so sánh

Trang 19

Các phép toán trên con trỏ

Trang 20

Các phép toán trên con trỏ

Trang 21

Các phép toán trên con trỏ

Trang 22

Mảng con trỏ

 Mỗi biến con trỏ là một biến đơn Ta có thể tạo

mảng của các con trỏ với mỗi phần tử của mảng

là một con trỏ.

 Cú pháp:

< Kiểu dữ liệu > *Tên mảng con trỏ [ số phần tủ ];

Trang 24

Cấp phát bộ nhớ động

Cấp phát vùng nhớ cho biến con trỏ:

Các hàm: malloc(), calloc(), free()…

Trang 25

Cấp phát bộ nhớ động

Giải phóng vùng nhớ cho biến con trỏ

Trang 26

Con trỏ và tham số hình thức của hàm

Trang 27

Con trỏ và tham số hình thức của hàm

Ví dụ viết hàm hoán vị:

Trang 28

Con trỏ và tham số hình thức của hàm

Trang 29

C

Ngày đăng: 18/06/2014, 14:20

Xem thêm

TỪ KHÓA LIÊN QUAN

w