intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tin học đại cương- bài 9: con trỏ và địa chỉ mảng hàm và chương trình chuỗi ký tự

Chia sẻ: Lê Trinh | Ngày: | Loại File: PPT | Số trang:64

76
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Khái niệm: Địa chỉ của biến là số thứ tự của byte đầu tiên trong một dãy các byte liên tiếp mà máy dành cho biến. Phân loại địa chỉ biến: địa chỉ kiểu int, float, double, … Lấy địa chỉ của một biến: & KHÁI NIỆM BIẾN CON TRỎ Là một biến dùng để lưu địa chỉ của một biến, mỗi loại địa chỉ sẽ có một kiểu con trỏ tương ứng (phụ thuộc vào loại dữ liệu lưu trữ trong địa chỉ đó) PHÂN LOẠI CON TRỎ Con trỏ kiểu int dùng để chứa địa chỉ của các biến kiểu int. Tương tự ta...

Chủ đề:
Lưu

Nội dung Text: Tin học đại cương- bài 9: con trỏ và địa chỉ mảng hàm và chương trình chuỗi ký tự

  1. www.uit.edu.vn TIN HỌC ĐẠI CƯƠNG BÀI 9 CON TRỎ VÀ ĐỊA CHỈ MẢNG HÀM VÀ CHƯƠNG TRÌNH CHUỖI KÝ TỰ 1
  2. NỘI DUNG 5 CON TRỎ VÀ ĐỊA CHỈ Tin học đại cương 2
  3. NỘI DUNG BÀI CON TRỎ VÀ ĐỊA CHỈ  Toán tử địa chỉ &  Con trỏ  Qui tắc sử dụng con trỏ  Qui tắc về kiểu giá trị trong khai báo Tin học đại cương 3
  4. TOÁN TỬ ĐỊA CHỈ  CÁC KHÁI NIỆM LIÊN QUAN ĐẾN BIẾN Ví dụ: int a = 15; Giá trị của biến Kiểu biến Tên biến Tin học đại cương 4
  5. TOÁN TỬ ĐỊA CHỈ  ĐỊA CHỈ CỦA BIẾN  Khái niệm: Địa chỉ của biến là số thứ tự của byte đầu tiên trong một dãy các byte liên tiếp mà máy dành cho biến.  Phân loại địa chỉ biến: địa chỉ kiểu int, float, double, …  Lấy địa chỉ của một biến: & Tin học đại cương 5
  6. TOÁN TỬ ĐỊA CHỈ Ví dụ: int x =5;  x được cấp phát vùng nhớ có kích thước 2 byte liên tiếp. Giả sử tại địa chỉ 1050, ta có: 1050 x 5  Địa chỉ của x: &x = 1050, giá trị của x = 5 Tin học đại cương 6
  7. CON TRỎ  KHÁI NIỆM BIẾN CON TRỎ Là một biến dùng để lưu địa chỉ của một biến, mỗi loại địa chỉ sẽ có một kiểu con trỏ tương ứng (phụ thuộc vào loại dữ liệu lưu trữ trong địa chỉ đó)  PHÂN LOẠI CON TRỎ Con trỏ kiểu int dùng để chứa địa chỉ của các biến kiểu int. Tương tự ta có con trỏ Tin học đại cương kiểu float, double, … 7
  8. CON TRỎ  KHAI BÁO BIẾN CON TRỎ  Con trỏ không kiểu: Cú pháp khai báo: void *tênbiến; Ví dụ: void *p, *q; Tin học đại cương 8
  9. CON TRỎ  Con trỏ có kiểu:  Chỉ chứa những địa chỉ của loại dữ liệu phù hợp với kiểu dữ liệu mà ta đã khai báo cho con trỏ.  Cú pháp khai báo: *tênbiến;  Ví dụ: int x = 5; int *p, *q; Tin học đại cương p = &x; // gán đ/c biến x cho p 9
  10. QUI TẮC SỬ DỤNG CON TRỎ  TÊN CON TRỎ  Sử dụng địa chỉ chứa trong con trỏ  Ví dụ: int *p, *q; int x = 5; // gán đ/c biến x cho con trỏ p p = &x; // lưu đ/c trong p vào con trỏ q Tin học đại cương q = p; Giả sử địa chỉ của x là 1010 thì p = 1010 và q = 1010 10
  11. QUI TẮC SỬ DỤNG CON TRỎ  DẠNG KHAI BÁO CỦA CON TRỎ  Sử dụng giá trị lưu tại vùng nhớ mà con trỏ trỏ tới  Ví dụ: int *p, *q; int x = 5, z; p = &x; // *p = x = 5; q = p; // *q = *p = x = 5 Tin học đại cương // z = 5 + 3*5 = 20; z = *p + 3*(*q); 11
  12. QUI TẮC SỬ DỤNG CON TRỎ  Khi đó ba biểu thức sau đây là tương đương: *q = z+x; *p = z+x; x = z+x; Tin học đại cương 12
  13. Tin học đại cương 6 NỘI DUNG 13 MẢNG
  14. NỘI DUNG BÀI MẢNG  Khái niệm  Khai báo  Chỉ số của mảng  Lấy địa chỉ các phần tử mảng  Nhập xuất mảng  Mảng và con trỏ  Mảng và hàm Tin học đại cương 14
  15. KHAI BÁO MẢNG  Cú pháp: [];  Ví dụ 1: int a[100]; int P[100][100];  Ví dụ 2: #define MAX 100 Tin học đại cương float c[MAX][MAX], d[MAX]; 15
  16. CHỈ SỐ MẢNG  KIỂU DỮ LIỆU CỦA CHỈ SỐ  Chỉ số của mảng phải là một giá trị kiểu đơn giản, rời rạc: số nguyên, ký tự.  Nếu là số nguyên thì mặc định từ số 0.  Ví dụ: int A[5];  Tên mảng: A  Kiểu dữ liệu của từng phần tử trong mảng: int  Số phần tử tối đa trong mảng: 5 phần tử Tin học đại cương  Các chỉ số được đánh số: 0 1 2 3 4 16
  17. LẤY ĐỊA CHỈ MỘT PHẦN TỬ  Cú pháp: &[];  Ví dụ: int A[5]; scanf(“%d”, &A[0]);  Chú ý: Tên mảng chứa địa chỉ phần tử đầu tiên của mảng. Tin học đại cương 17
  18. NHẬP XUẤT MẢNG (TRỰC TIẾP) #include #include #define MAX 100 void main() { int A[MAX], N, i; printf(“So phan tu cua mang:"); scanf("%d", &N); for(i=0;i
  19. NHẬP XUẤT MẢNG (GIÁN TIẾP) #include #include #define MAX 100 void main() { float A[MAX], temp; int N, i; printf(“So phan tu cua mang: "); scanf("%d", &N); for(i=0; i
  20. SỰ TƯƠNG QUAN MẢNG VÀ CON TRỎ  Khi khai báo một mảng thì tên của mảng là một hằng địa chỉ, chứa địa chỉ của phần tử đầu tiên (phần tử có chỉ số 0).  Như vậy ta có thể nói mảng là con trỏ hằng.  Xét khai báo: int a[5]; *pa=a; khi đó con trỏ pa cũng giữ địa chỉ của phần tử đầu tiên của mảng a và pa+i (hoặc pa[i]) là địa chỉ của phần tử a[i]. Tin học đại cương 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2