Đến với Bài giảng Tin học đại cương Phần 2: Bài 4 - Con trỏ và mảng trong C các bạn sẽ được tìm hiểu về các vấn đề liên quan đến con trỏ và địa chỉ; mảng. Hy vọng tài liệu là nguồn thông tin hữu ích cho quá trình học tập và nghiên cứu của các bạn.
TIN HỌC ĐẠI CƯƠNG Bài CON TRỎ VÀ MẢNG TRONG C Nguyễn Thành Kiên Bộ môn Kỹ thuật máy tính Khoa Cơng nghệ thơng tin – ĐHBK HN Bài CON TRỎ VÀ MẢNG TRONG C 4.1 Con trỏ địa 4.1.1 Khái niệm trỏ 4.1.2 Các phép toán làm việc liên quan đến biến trỏ 4.2 Mảng 4.2.1 4.2.2 4.2.3 4.2.4 mảng Khái niệm mảng Khai báo sử dụng mảng Các thao tác làm việc mảng Sử dụng trỏ làm việc với Bài CON TRỎ VÀ MẢNG TRONG C 4.1 Con trỏ địa 4.1.1 Khái niệm trỏ 4.1.2 Các phép toán làm việc liên quan đến biến trỏ 4.2 Mảng 4.2.1 4.2.2 4.2.3 4.2.4 mảng Khái niệm mảng Khai báo sử dụng mảng Các thao tác làm việc mảng Sử dụng trỏ làm việc với Bài CON TRỎ VÀ MẢNG TRONG C 4.1 Con trỏ địa 4.1.1 Khái niệm trỏ 4.1.2 Các phép toán làm việc liên quan đến biến trỏ 4.2 Mảng 4.2.1 4.2.2 4.2.3 4.2.4 mảng Khái niệm mảng Khai báo sử dụng mảng Các thao tác làm việc mảng Sử dụng trỏ làm việc với 4.1.1 Khái niệm trỏ Địa giá trị biến Bộ nhớ hiểu dãy byte nhớ, ô nhớ xác định cách qua địa Tất biến chương trình lưu vùng nhớ 4.1.1 Khái niệm trỏ Khi khai báo biến, chương trình dịch cấp phát cho biến số ô nhớ liên tiếp đủ để chứa nội dung biến, ví dụ: biến ký tự cấp phát byte biến nguyên cấp phát byte biến thực cấp phát byte v.v Địa biến địa byte số 4.1.1 Khái niệm trỏ Một biến ln có hai đặc tính: Địa biến Giá trị biến Ví dụ: char a; a=0x41 &a=3300161 int b; b=0x07D6 &b=3300158 4.1.1 Khái niệm trỏ Khái niệm trỏ Con trỏ biến mà giá trị địa vùng nhớ Vùng nhớ chứa biến thuộc kiểu liệu sở int, char, hay double liệu có cấu trúc mảng 4.1.1 Khái niệm trỏ Cú pháp khai báo trỏ: Kiểu_dữ_liệu *tên_contrỏ; Kiểu trỏ phụ thuộc vào kiểu biến mà trỏ đến Trong ví dụ sau, ta định nghĩa trỏ p trỏ đến biến nguyên i: int int int p = a = b = 0x7D6; a; *p; &b; *p; 4.1.1 Khái niệm trỏ Toán tử & * Toán tử & tốn tử ngơi trả địa biến Toán tử * toán tử trả giá trị chứa vùng nhớ trỏ giá trị biến trỏ int i = 3; int *p; p = &i; printf("*p = %d \n",*p); *p=10; printf(”i=%d”,i); 10 4.2.2 Khai báo sử dụng mảng Cú pháp: kieu_du_lieu ten_mang[kich_thuoc_mang]; kieu_du_lieu kiểu liệu phần tử mảng ten_mang tên mảng kich_thuoc_mang cho biết số phần tử mảng Ví dụ: int mang_nguyen[10];// mảng 10 phần tử, kiểu DL: int float mang_thuc[4]; // mảng phần tử,kiểu DL: float char mang_ki_tu[6]; // mảng phần tử,kiểu DL: char Chú ý: Kích thước mảng kích thước phần tử nhân với số phần 19 tử Mảng chiều mảng nhiều chiều Mảng tập hợp phần tử kiểu liệu, phần tử mảng mảng khác ta có mảng nhiều chiều Ví dụ sau khai báo mảng gồm phần tử, phần tử lại mảng gồm số nguyên kiểu int Mảng mảng chiều int a[6][5]; float b[3][4][5]; // ??? 20 Sử dụng mảng Truy nhập vào phần tử mảng thông qua tên Tên phần tử mảng tạo thành từ tên mảng theo sau số phần tử mảng đặt cặp dấu ngoặc vng tên_mảng[chỉ_số_của_phần_tử] 21 Sử dụng mảng Ví dụ với khai báo int mang_nguyen[3]; Thì: mang_nguyen[0] phần tử thứ mảng mang_nguyen[1] phần tử thứ mảng mang_nguyen[2] phần tử thứ mảng 22 Sử dụng mảng Với mảng nhiều chiều int a[6][5]; Thì: a[0] phần tử mảng, phần tử thân lại mảng chiều Phần tử mảng chiều a[0] a[0][0] Phần tử a[0] a[0][1] … Phần tử cuối mảng chiều a[0] a[0][4] a[1] phần tử thứ hai mảng Và dễ dàng tính a[2][3] phần tử thứ phần tử thứ a 23 Bài CON TRỎ VÀ MẢNG TRONG C 4.1 Con trỏ địa 4.1.1 Khái niệm trỏ 4.1.2 Các phép toán làm việc liên quan đến biến trỏ 4.2 Mảng 4.2.1 4.2.2 4.2.3 4.2.4 mảng Khái niệm mảng Khai báo sử dụng mảng Các thao tác làm việc mảng Sử dụng trỏ làm việc với 24 4.2.3 Các thao tác làm việc mảng Nhập liệu cho mảng Nhập liệu cho mảng nhập liệu cho phần tử mảng Mỗi phần tử mảng thực chất biến có kiểu liệu kiểu liệu chung mảng float a[10]; int b[4] = {4, 9, 22, 16}; int i; scanf(“%f”,&a[1]); a[2] = a[1] + 5; int a[100]; int n, i; printf(“\n Cho biet so phan tu cua mang:”); scanf(“%d”,&n); for(i = 0; i < n; i++) { printf("\n a[%d] = ", i); scanf("%d",&a[i]); } 25 4.2.3 Các thao tác làm việc mảng Xuất liệu chứa mảng Dùng tên mảng số phần tử tương ứng Chú ý: số phải nằm khoảng giá trị cho phép, truy nhập ngịai giá trị tính tốn khơng 26 4.2.3 Các thao tác làm việc mảng Tìm kiếm mảng Ví dụ: Viết chương trình đọc vào mảng số thực, số số thực đọc vào