- DỮ LIỆU KIỂU CON TRỎ (CƠ BẢN). - Dữ liệu kiểu con trỏ (cơ bản). - Mỗi ô nhớ có địa chỉ duy nhất và địa chỉ này được đánh số từ 0 trở đi.. - Ví dụ. - RAM 512MB được đánh địa chỉ từ 0 đến 2 29 – 1. - RAM 2GB được đánh địa chỉ từ 0 đến 2 31 – 1. - 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.. - Giả sử địa chỉ 0x0B. - Khái niệm con trỏ. - Địa chỉ của biến là một con số.. - Ta có thể tạo biến khác để lưu địa chỉ của biến này Con trỏ.. - Khai báo con trỏ. - Giống như mọi biến khác, biến con trỏ muốn sử dụng cũng cần phải được khai báo. - ể ữ ệ *<tên bi n con tr >. - Giảm bối rối khi mới tiếp xúc với con trỏ.. - ể ữ ệ *<tên ki u con tr >. - <tên ki u con tr >. - <tên bi n con tr >. - Con trỏ NULL. - Con trỏ NULL là con trỏ không trỏ và đâu cả.. - Khác với con trỏ chưa được khởi tạo.. - Khởi tạo kiểu con trỏ. - Khi mới khai báo, biến con trỏ được đặt ở địa chỉ nào đó (không biết trước). - chứa giá trị không xác định. - Đặt địa chỉ của biến vào con trỏ (toán tử &). - <tên bi n con tr >. - Sử dụng con trỏ. - Truy xuất đến ô nhớ mà con trỏ trỏ đến. - Con trỏ chứa một số nguyên chỉ địa chỉ.. - printf(“%d\n”, pa. - printf(“%d\n”, *pa. - Giá tr vùng nh pa tr ị ớ ỏ đ ế n printf(“%d\n”, &pa. - Kích thước của con trỏ. - Con trỏ chỉ lưu địa chỉ nên kích thước của mọi con trỏ là như nhau:. - Truyền giá trị (tham trị). - printf(“a = %d, b = %d”, a, b);. - int b = 6 int x. - int x int y int y hoanvi. - int x int y. - Truyền địa chỉ (con trỏ). - int b = 6 int *x. - int *x int *y int *y hoanvi. - int *x int *y. - int b = 6 int &x. - Con trỏ là khái niệm quan trọng và khó nhất trong C. - Mức độ thành thạo C được đánh giá qua mức độ sử dụng con trỏ.. - pa và &a đều chỉ địa chỉ của biến a.. - Không nên sử dụng con trỏ khi chưa được khởi tạo. - Con trỏ và mảng một chiều. - Tên mảng array là một hằng con trỏ. - không thể thay đổi giá trị của hằng này.. - Giá trị của array là địa chỉ phần tử đầu tiên của mảng. - Con trỏ đến mảng một chiều. - Phép toán số học trên con trỏ. - Phép toán tính khoảng cách giữa 2 con trỏ. - Phép so sánh: So sánh địa chỉ giữa hai con trỏ (thứ tự ô nhớ). - Truy xuất đến phần tử thứ n của mảng. - scanf(“%d”, &a[i]);. - scanf(“%d”, &pa[i]);. - scanf(“%d”, pa + i);. - scanf(“%d”, pa++);. - printf(“%d”, pa[i]);. - Mảng một chiều truyền cho hàm là địa chỉ của phần tử đầu tiên chứ không phải toàn mảng.. - int a[3] int n int n xuất. - int a[] int *a int *a. - Tăng/giảm con trỏ n đơn vị có nghĩa là . - tăng/giảm giá trị của nó n*sizeof(<kiểu dữ liệu mà nó trỏ đến>) (bytes). - Không thể tăng/giảm biến mảng (con trỏ . - Hãy gán một con trỏ đến địa chỉ đầu của mảng và tăng/giảm con trỏ đó.. - Đối số mảng một chiều truyền cho hàm là địa chỉ phần tử đầu tiên của mảng.. - Con trỏ và cấu trúc. - <tên bi n con tr c u trúc>. - Hãy cho biết giá trị của:. - &pay Dữ liệu kiểu con trỏ (cơ bản). - Bài 4: Toán tử nào dùng để xác định địa chỉ của một biến?. - Bài 5: Toán tử nào dùng để xác định giá trị của biến do con trỏ trỏ đến?. - Toán tử. - ví dụ int a. - Bài 6: Phép lấy giá trị gián tiếp là gì?. - Cách truy xuất giá trị một biến thông qua con trỏ đến biến đó.. - Ví dụ: int a. - Thành một dãy liên tiếp trong bộ nhớ, phần tử mảng chỉ số nhỏ hơn sẽ ở địa chỉ thấp hơn.. - Trình bày 2 cách lấy địa chỉ phần tử đầu tiên của mảng này.. - Bài 9: Trình bày 6 loại phép toán có thể thực hiện trên con trỏ?. - Toán tử lấy địa chỉ: &. - Toán tử lấy giá trị gián tiếp:. - Bài 10: Cho con trỏ p1 trỏ đến phần tử thứ 3 còn con trỏ p2 trỏ đến phần tử thứ 4 của mảng int thì p2 – p1. - p2 – p1 = 1. - Bài 12: Trình bày khai báo con trỏ pchar trỏ đến kiểu char.. - Khai báo và khởi tạo con trỏ pcost trỏ đến biến này.. - Bài 14: Gán giá trị 100 cho biến cost sử dụng hai cách trực tiếp và gián tiếp.. - Bài 15: In giá trị của con trỏ và giá trị của biến mà nó trỏ tới.. - printf(“%u”, pcost);. - printf(“%d”, *pcost);. - Bài 16: Sử dụng con trỏ để làm lại các bài tập về mảng một chiều.
Xem thử không khả dụng, vui lòng xem tại trang nguồn hoặc xem
Tóm tắt