Bài giảng Tin học II - Chương VII: Sự lưu trữ của biến sự chuyển kiểu - Trần Anh Dũng

Biến khi được sử dụng trong chương trình Æ phải được

khai báo

o Biến có thể được khai báo ở nhiều chỗ trong chương trình

(trong hàm, ngoài hàm.)

o Mỗi chỗ như vậy sẽ làm cho biến có khả năng sử dụng

khác nhau, từ đó hình thành nên các lớp lưu trữ biến.

pdf13 trang | Chuyên mục: C/C++ | Chia sẻ: yen2110 | Lượt xem: 494 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Tin học II - Chương VII: Sự lưu trữ của biến sự chuyển kiểu - Trần Anh Dũng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
2/3/2009
CBGD: ThS.Trần Anh Dũng 1
Chương VII
C
B
G
D
: ThS
.Trần A
nh D
ũng
SỰ LƯU TRỮ CỦA BIẾN
SỰ CHUYỂN KIỂU
1
KHÁI NIỆM
o Biến khi được sử dụng trong chương trình Æ phải được
khai báo
o Biến có thể được khai báo ở nhiều chỗ trong chương trình
C
B
G
D
: ThS
.Trần A
nh D
ũng
(trong hàm, ngoài hàm...)
o Mỗi chỗ như vậy sẽ làm cho biến có khả năng sử dụng
khác nhau, từ đó hình thành nên các lớp lưu trữ biến.
2
2/3/2009
CBGD: ThS.Trần Anh Dũng 2
KHÁI NIỆM
o Có hai đặc tính quan trọng của một biến: tầm sử dụng của
biến và thời gian tồn tại của biến
C
B
G
D
: ThS
.Trần A
nh D
ũng
3
BIẾN CỤC BỘ
o Biến cục bộ, còn gọi là biến tự động (auto), là các biến
được khai báo:
¾ Ngay sau cặp dấu móc { } (cặp dấu này như đã biết
ể ắ ầ CB
G
D
: ThS
.Trần A
nh D
ũng
đ b t đ u cho một lệnh phức hoặc một thân hàm).
¾ Trong danh sách đối số của hàm.
¾ Từ khóa auto được đặt trong dấu ngoặc Æ
4
có hoặc không có
¾ Biến cục bộ được khai báo luôn là biến auto
2/3/2009
CBGD: ThS.Trần Anh Dũng 3
BIẾN CỤC BỘ
C
B
G
D
: ThS
.Trần A
nh D
ũng
5
BIẾN CỤC BỘ
C
B
G
D
: ThS
.Trần A
nh D
ũng
6
2/3/2009
CBGD: ThS.Trần Anh Dũng 4
BIẾN CỤC BỘ
C
B
G
D
: ThS
.Trần A
nh D
ũng
7
BIẾN TOÀN CỤC
Biến toàn cục (global) hay còn gọi là biến ngoài: biến được
khai báo ở bên ngoài tất cả các hàm.
Biến toàn cục Æ liên kết trị giữa các hàm khác nhau mà việc
ề ố ắ ố CB
G
D
: ThS
.Trần A
nh D
ũng
truy n theo tham s trở nên r c r i và phức tạp.
Các hàm sử dụng chung biến toàn cục:
-Nằm trong cùng một tập tin
-Nằm trong các tập tin khác nhau
8
2/3/2009
CBGD: ThS.Trần Anh Dũng 5
BIẾN TOÀN CỤC
C
B
G
D
: ThS
.Trần A
nh D
ũng
9
BIẾN TOÀN CỤC
C
B
G
D
: ThS
.Trần A
nh D
ũng
10
2/3/2009
CBGD: ThS.Trần Anh Dũng 6
BIẾN TOÀN CỤC
C
B
G
D
: ThS
.Trần A
nh D
ũng
11
BIẾN TOÀN CỤC
¾Biến toàn cục Æ khai báo một lần duy nhất trong chương
trình.
¾Nếu một chương trình lại được thiết kế thành nhiều module
C
B
G
D
: ThS
.Trần A
nh D
ũng
chương trình Æ biến toàn cục phải được khai báo trong một
module chương trình nào đó, nhưng nó lại có thể được sử dụng
bởi tất cả các hàm khác ở module khác của chương trình.
12
2/3/2009
CBGD: ThS.Trần Anh Dũng 7
BIẾN TOÀN CỤC
C
B
G
D
: ThS
.Trần A
nh D
ũng
13
BIẾN TĨNH
C
B
G
D
: ThS
.Trần A
nh D
ũng
14
2/3/2009
CBGD: ThS.Trần Anh Dũng 8
BIẾN TĨNH
C
B
G
D
: ThS
.Trần A
nh D
ũng
15
BIẾN TĨNH
C
B
G
D
: ThS
.Trần A
nh D
ũng
16
2/3/2009
CBGD: ThS.Trần Anh Dũng 9
BIẾN TĨNH
C
B
G
D
: ThS
.Trần A
nh D
ũng
17
BIẾN THANH GHI (REGISTER)
C
B
G
D
: ThS
.Trần A
nh D
ũng
¾Các khai báo biến thanh ghiÆ đặt bên trong một hàm hoặc
đầu một lênh phức (khối lệnh) như khai báo biến cục bộ hoặc
khai báo đối số hàm.
¾Tầm sử dụng và thời gian tồn tại của các biến thanh ghi
18
tương tự như các biến cục bộ, nhưng chúng được truy xuất
nhanh hơn các biến cục bộ bình thường vì chúng chính là các
thanh ghi của bộ vi xử lý.
¾Do đó, các biến thanh ghi thường được sử dụng làm các
biến điều khiển trong các vòng lặp hoặc các biến phải truy
xuất nhiều lần trong chương trình.
2/3/2009
CBGD: ThS.Trần Anh Dũng 10
BIẾN THANH GHI (REGISTER)
C
B
G
D
: ThS
.Trần A
nh D
ũng
19
BIẾN THANH GHI (REGISTER)
C
B
G
D
: ThS
.Trần A
nh D
ũng
20
không
2/3/2009
CBGD: ThS.Trần Anh Dũng 11
BIẾN THANH GHI (REGISTER)
C
B
G
D
: ThS
.Trần A
nh D
ũng
21
BIẾN THANH GHI (REGISTER)
¾Biến thanh ghi chỉ chấp nhận một số kiểu biến nguyên như
int, char, unsigned, long và pointer mà thôi.
¾Số thanh ghi trong mỗi bộ vi xử lí là có giới hạn (tùy thuộc
à h i ử lí) Æ khô ê kh i bá á hiề biế th h CB
G
D
: ThS
.Trần A
nh D
ũng
v o ọ v x ng n n a o qu n u n an
ghi.
VD: Đối với máy IBM-PC hoặc tương thích, số biến thanh
ghi thật sự thay đổi từ 0 đến 2
¾Biến thanh ghi sử dụng thanh ghi lưu trữ dữ liệu, vì vậy
không thể lấy được địa chỉ của biến thanh ghi
22
2/3/2009
CBGD: ThS.Trần Anh Dũng 12
KHỞI ĐỘNG TRỊ CHO BIẾN Ở CÁC LỚP
¾Mỗi lớp có một đặc điểm riêng và tùy lớp mà C có khả năng
tự động gán giá trị ban đầu cho biến lúc chúng được khai báo.
Æ Cần hiểu rõ việc khởi động trị này của các lớp để không phải C
B
G
D
: ThS
.Trần A
nh D
ũng
tốn thời gian khởi động trị của chúng trong chương trình.
¾Đối với các lớp biến không được C khởi động trịÆ lập trình
viên phải tự khởi động trị lúc khai báo hoặc trước khi cần sử
dụng
23
KHỞI ĐỘNG TRỊ CHO BIẾN Ở CÁC LỚP
¾Đối với biến toàn cục hoặc biến tĩnh, ngay sau khi được khai
báo, mỗi biến sẽ được C tự động gán trị là 0
¾Trong khi đó biến tự động và biến thanh ghi sẽ có giá trị
không xác định (gọi là trị rác) C
B
G
D
: ThS
.Trần A
nh D
ũng
¾Biến toàn cục và biến tĩnh có thể được khởi động trị bằng một
biểu thức hằng
¾Biến tự động và biến thanh ghi có thể được khởi động trị
bằng một biểu thức mà giá trị của biểu thức tới lúc đó đã xác
định, trong biểu thức đó có thể có gọi hàm
24
¾Việc khởi động cho các biến thuộc kiểu dữ kiện có cấu trúc
như mảng (array), struct và union chỉ có thể thực hiện được
đối với các biến toàn cục hoặc biến tĩnh mà thôi
2/3/2009
CBGD: ThS.Trần Anh Dũng 13
SỰ CHUYỂN KIỂU
¾C có khả năng tự động chuyển kiểu
¾C còn cho phép lập trình viên chuyển kiểu bắt buộc. Cú pháp:
C
B
G
D
: ThS
.Trần A
nh D
ũng
với type là kiểu mà ta muốn ép về cho giá_trị để thực hiện
phép toán
25
BÀI TẬP
C
B
G
D
: ThS
.Trần A
nh D
ũng
26

File đính kèm:

  • pdfbai_giang_lap_trinh_c_chuong_vii_su_luu_tru_cua_bien_su_chuy.pdf