Chuong 8 pointer pascal

10 110 0
Chuong 8  pointer pascal

Đang tải... (xem toàn văn)

Thông tin tài liệu

ebook photoshop chương 8×cách tải chương trình turbo pascal lớp 8×chương trình turbo pascal lớp 8×viet chuong trinh turbo pascal lop 8×tải chương trình turbo pascal lớp 8ebook photoshop chương 8×cách tải chương trình turbo pascal lớp 8×chương trình turbo pascal lớp 8×viet chuong trinh turbo pascal lop 8×tải chương trình turbo pascal lớp 8

NGÔN NGỮ C Chương 8: CẤP PHÁT ĐỘNG BỘ NHỚ Giáo viên: Tạ Thúc Nhu Khoa CNTT trường ĐH Lạc Hồng I- Biến Tĩnh Biến Động: Biến tĩnh: Là biến khai báo trước cú pháp khai báo biến chúng cấp phát vùng nhớ trước thực lệnh khác thân chương trình tồn suốt trình thực Biến động: • Là biến khơng tên, khơng khai báo trước biến tĩnh Biến động tạo (cấp phát vùng nhớ) hay xóa cần thiết hàm tốn tử • Việc truy nhập liệu biến động tiến hành nhờ biến trỏ (Pointer Variable) • Các biến trỏ định nghiã biến tĩnh (Có tên, khai báo phần khai báo biến) dùng để chứa địa biến động Mã hóa II- Tạo Biến Động Bằng hàm hay • void *malloc( S ); Cấp phát vùng nhớ có kích thước S bytes Trả địa vùng nhớ Nếu khơng đủ nhớ hàm trả giá trị NULL • void *calloc( N, S ); Cấp phát mảng động có N phần tử, phần tử có kích thước S bytes Trả địa vùng nhớ • void * realloc(void *ptr, S): Cấp lại vùng nhớ với kích thước S bytes cho biến trỏ ptr, đồng thời chép liệu vào vùng nhớ Bằng toán tử new : BiếnConTrỏ = new [Số_phần_tử]; Ví dụ: int *p1, *p2; - Cấp động biến kiểu int : p1 = (int *) malloc( sizeof(int) ); p1 = new int; - Cấp động mảng 10 phần tử: p2 = (int*) calloc(10, sizeof(int) ); p2 = new int[10]; Mã hóa III- Xóa Biến Động Giải phóng vùng nhớ động cấp phát cho biến trỏ: • Dùng hàm: free( Biếncontrỏ ); • Dùng tốn tử: delete Biếncontrỏ; Ví dụ: free(p1); delete p1; Mã hóa IV- Cấp Phát Động Mảng Chiều • Khai báo biến trỏ thuộc kiểu phần tử mảng KiểuPT *Biếncontrỏ; • Cấp phát vùng nhớ cho N phần tử mảng lưu địa vào biến trỏ Biếncontrỏ = (KiểuPT *) calloc( N, sizeof(KiểuPT)); • Các thao tác mảng động biến trỏ tương tự dùng tên mảng tĩnh Mã hóa Ví dụ: Viết chương trình nhập N số thực (N = 0; i ) printf(" %f ", A[i] ); } Mã hóa Ví dụ: Viết chương trình nhập N số thực (N = 0; i ) printf(" %f ", A[ i ] ); free( A ); } Mã hóa IV- Cấp Phát Động Mảng Chiều • Khai báo biến trỏ thuộc kiểu phần tử mảng KiểuPT *Biếncontrỏ; • Cấp phát vùng nhớ cho MxN phần tử mảng lưu địa vào biến trỏ Biếncontrỏ = (KiểuPT *) calloc( M*N, sizeof(KiểuPT)); • Địa phần tử [ i ][ j ] bằng: Biếncontrỏ + i * N + j • Giá trị phần tử [i][j] bằng: *(Biếncontrỏ + i * N + j) Mã hóa Ví dụ: Nhập In mảng tĩnh chiều for ( d = 0; d < SD; d++) for (c = 0; c < SC; c++) { printf(“PT[%d][%d]=“, c, d); scanf(“%f”, &B[ d ][ c ] ); } #include #include void main() { float B[100][100]; int SD, SC; int d, c; printf("Bang so da nhap:\n"); for ( d = 0; d < SD; d++) { printf("\nNhap So dong va so cot :"); scanf("%d %d", &SD, &SC); for (c = 0; c < SC; c++) printf(“ %f “, B[d] [c]); printf("Nhap gia tri cac phan tu:\n"); printf("\n"); } } Mã hóa Ví dụ: Nhập In mảng động chiều include #include #include for ( d = 0; d < SD; d++) for (c = 0; c < SC; c++) { printf("PT[%d][%d]=", c, d); void main() { canf("%f", B + d*SC+ c ); float *B; } int SD, SC; printf("Bang so da nhap:\n"); int d, c; for ( d = 0; d < SD; d++) { printf("\nNhap So dong va so cot :"); scanf("%d %d", &SD, &SC); for (c = 0; c < SC; c++) printf(" %f ", *(B+d*SC+c)); printf("Nhap gia tri cac phan tu:\n"); B= (float*)calloc(SD*SC, sizeof(float)); printf("\n"); } delete B; } 10 Mã hóa ... vùng nhớ) hay xóa cần thiết hàm tốn tử • Việc truy nhập liệu biến động tiến hành nhờ biến trỏ (Pointer Variable) • Các biến trỏ định nghiã biến tĩnh (Có tên, khai báo phần khai báo biến) dùng

Ngày đăng: 04/11/2018, 10:33

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan