1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Kiểu con trỏ

2 325 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 46 KB

Nội dung

VII Kiểu trỏ Khái niệm Con trỏ biến chứa địa biến khác Trong C trỏ sử dụng nhiều coi mạnh biểu diễn tính toán truy nhập gián tiếp đối tượng Sử dụng biến trỏ  Khai báo trỏ: *; Ví dụ: int *p; //Khai báo trỏ p trỏ đến kiểu liệu int hay p trỏ kiểu int Gán địa biến cho biến trỏ = &; Ví dụ: int x, *p; p=&x;  Lưu ý: Chỉ gán địa biến kiểu với biến trỏ Ví dụ: int x; float *p; p=&x ; //sai  Truy cập biến thông qua biến trỏ: *; Ý nghĩa: Lấy nội dung vùng nhớ mà trỏ trỏ đến  Ví dụ: Các lệnh sau khai báo gán địa cho biến trỏ int x=10,y; int *p; p=&x; y=*p; // y=10; lấy nội dung vùng nhớ x mà trỏ p trỏ đến để gán cho y  Cấp phát vùng nhớ cho biến trỏ Biến tĩnh: Biến xác định rõ ràng lúc mô tả kiểu khai báo biến int a, b; Biến động: Biến tạo cách “động” lúc chạy chương trình, tuỳ theo nhu cầu, số biến không xác định trước  Các biến động tên  Để sử dụng biến động dùng biến trỏ  Ví dụ: Khai báo trỏ tạo biến động int *pnumber; //khai báo biến trỏ pnumber= (int *) malloc(100); //tạo biến động //Ý nghĩa: cấp phát 100 bytes nhớ gán địa khối nhớ cho pnumber  Cấp phát biến động: int, char, long, float, double (data type *) malloc (số ô nhớ cần cấp phát) VD: (int *) malloc(20); (char *) malloc(30);  Cấp phát biến động: kiểu người lập trình tạo ra, dùng cho kiểu sở (data type *) calloc(n, sizeof(object)); n: số lượng object thuộc kiểu data type Ví dụ: (float *) calloc(10,sizeof(float)) Hoặc calloc(10, sizeof(struct nhan_su)); //cấp phát nhớ cho 10 nhân  Cấp phát lại nhớ: (datatype *) realloc(pointer, newsize); pointer: trỏ trỏ tới vùng nhớ cấp phát newsize: kích thước Ví dụ: char *str;   str=(char *) malloc(10); … str=(char *) realloc(str,20);  Giải phóng vùng nhớ: free(pointer) // dùng với malloc, calloc Các ví dụ việc sử dụng trỏ: Ví dụ 1: Các phép toán biến trỏ #include #include void main(){ int i=10,j=20; int *p,*q; p=&i; q=&j; *q=*p+4; p=&j; printf("i=%d \t j=%d \t *p=%d \t *q=%d",i,j,*p,*q); getch(); } Ví dụ 2: Cấp phát sử dụng biến động #include #include void main(){ int *pointer, n,i; printf("Mang co bao nhieu phan tu"); scanf("%d",&n); pointer= (int*) malloc(n*sizeof(int)); for(i=0;i

Ngày đăng: 22/12/2016, 13:38

Xem thêm

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w