« Home « Kết quả tìm kiếm

Giáo trình ngôn ngữ C++ Part 2


Tóm tắt Xem thử

- Biến, hằng và các kiểu dữ liệu trong C.
- Biến là đại lượng có giá trị thuộc một kiểu dữ liệu nào đó mà được chấp nhận bởi ngôn ngữ (xem phần các kiểu dữ liệu), giá trị của biến có thể thay đổi trong thời gian tồn tại của biến (hay ta nói trong vòng đời của biến)..
- Tức là biến cũng được cấp phát một vùng nhớ để lưu giữ giá trị thuộc một kiểu dữ liệu xác định.
- Vì thế theo một khía cạnh nào đó có thể nói biến là một cái tên đại diện cho ô nhớ trong máy tính, chương trình có thể truy xuất ô nhớ (lấy hoặc ghi giá trị) thông qua tên biến..
- Kiểu dữ liệu: kiểu của biến.
- Giá trị hiện tại nó đang lưu giữ (giá trị của biến).
- tuy nhiên sau này chúng ta thấy trong C có biến kiểu void, ban đầu coi đây là biến không kiểu nhưng dần quan niệm đó cũng là 1 tên kiểu và là kiểu không xác định).
- Trong C cũng như các ngôn ngữ lập trình khác các biến đều phải có tên, các tên biến hay nói chung là tên (gồm tên biến, tên hằng, tên hàm, hoặc từ khoá) là một xâu kí tự và phải tuân theo các quy định của ngôn ngữ đó là:.
- Tên chỉ có thể chứa kí tự là chữ cái (‘a’ ,..,’z’.
- chữ số và kí tự gạch dưới.
- số kí tự không quá 32..
- Kí tự đầu tiên của tên phải là chữ cái hoặc kí tự gạch dưới.
- Tức là hai xâu cùng các kí tự nhưng khác nhau bởi loại chữ hoa hoặc chữ thường là hai tên khác nhau, ví dụ như với 2 xâu kí tự “AB” và “Ab” là hai tên hoàn toàn phân biệt nhau..
- Hay nói khác đi, trong chương trình có thể bạn phải dùng đến tên, tên này do bạn đặt theo ý tưởng của bạn nhưng không được trùng với các từ khoá..
- ¾ Ví dụ các tên hợp lệ và không hợp lệ.
- ngay-sinh không hợp lệ vì có kí tự -(dấu trừ) double không hợp lệ vì trùng với từ khoá 9winter không hợp lệ vì kí tự đầu tiên là số.
- ¾ Câu lệnh định nghĩa biến.
- Trong ngôn ngữ lập trình có cấu trúc nói chung và trong C nói riêng, mọi biến đều phải được định nghĩa trước khi sử dụng.
- Câu lệnh định nghĩa biến báo cho chương trình dịch biết các thông tin tên, kiểu dữ liệu và có thể cả giá trị khởi đầu của biến..
- <kiểu_dữ_liệu>.
- <giá_trị_1>.
- <giá_trị_2>,..];.
- là tên một kiểu dữ liệu đã tồn tại, đó có thể là tên kiểu dữ liệu chuẩn hoặc kiểu dữ liệu định nghĩa bởi người lập trình..
- <giá_tri_1>, <giá_trị_2>.
- là các giá trị khởi đầu cho các biến tương ứng <biến_1>,.
- Các thành phần này là tuỳ chọn, nếu có thì giá trị này phải phù hợp với kiểu của biến..
- Trên một dòng lệnh định nghĩa có thể khai báo nhiều biến cùng kiểu, với tên là.
- Ví dụ:.
- Khi gặp các lệnh định nghĩa biến, chương trình dịch sẽ cấp phát vùng nhớ có kích thước phù hợp với kiểu dữ liệu của biến, nếu có thành phần khởi đầu thì sẽ gán giá trị khởi đầu vào vùng nhớ đó..
- Hằng là đại lượng có giá trị thuộc một kiểu dữ liệu nhất định, nhưng giá trị của hằng không thể thay đổi trong thời gian tồn tại của nó..
- Có hai loại hằng một là các hằng không có tên (chúng ta sẽ gọi là hằng thường) đó là các giá trị cụ thể tức thời như : 8, hay 9.5 hoặc ‘d’..
- Loại thứ hai là các hằng có tên ( gọi là hằng ký hiệu).
- Các hằng ký hiệu cũng phải định nghĩa trước khi sử dụng, tên của hằng được đặt theo quy tắc của tên.
- Sau đây nếu không có điều gì đặc biệt thì chúng ta gọi chung là hằng.
- à Định nghĩa hằng.
- Các hằng được định nghĩa bằng từ khoá const với cú pháp như sau:.
- const <kiểu_dữ_liệu>.
- <giá_trị>;.
- <giá_trị>.
- định nghĩa hằng a kiểu nguyên, có giá trị là 5 const float x = 4.
- hằng x kiểu thực, có giá trị là 4.0.
- hằng d kiểu int, giá trị là 7 const c = ‘1.
- hằng c kiểu int giá trị = 49.
- Các hằng số trong C được ngầm hiểu là hệ 10, nhưng bạn có thể viết các hằng trong hệ 16 hoặc 8 bằng cú pháp, giá trị số hệ 16 được bắt đầu bằng 0x, ví dụ như 0x24, 0xA1 các số hệ 8 bắt đầu bởi số 0, ví dụ 025, 057..
- Các hằng kí tự được viết trong cặp dấu.
- ví dụ ‘a’, ‘2’ các giá trị này được C hiểu là số nguyên có giá trị bằng mã của kí tự.
- ‘a’ có giá trị là 97, ‘B’ có giá trị bằng 66..
- Các xâu kí tự là dãy các kí tự được viết trong cặp.
- ví dụ “Ngon ngu C”, “a” (xâu kí tự sẽ được giới thiệu trong phần sau).
- Chú ý: Các biến, hằng có thể được định nghĩa ngoài mọi hàm, trong hàm hoặc trong một khối lệnh.
- Với C chuẩn thì khi định nghĩa biến, hằng trong một khối thì dòng định nghĩa phải ở các dòng đầu tiên của khối, tức là trước tất cả các lệnh khác của khối, nhưng trong C++ bạn có thể đặt dòng định nghĩa bất kỳ vị trí nào..
- Các kiểu dữ liệu chuẩn đơn giản trong C.
- Một trong mục đích của các chương trình là xử lý, biến đổi thông tin, các thông tin cần xử lý phải được biểu diễn theo một cấu trúc xác định nào đó ta gọi là các kiểu dữ liệu..
- Các kiểu dữ liệu này được quy định bởi ngôn ngữ lập trình, hay nói khác đi mỗi ngôn ngữ có tập các kiểu dữ liệu khác nhau.
- Không hoàn toàn giống như khái niệm kiểu dữ liệu trong toán học, trong các ngôn ngữ lập trình nói chung mỗi kiểu dữ liệu chỉ biểu diễn được một miền giá xác định nào đó.
- Chẳng hạn như số nguyên chúng ta hiểu là các số nguyên từ.
- nhưng trong ngôn ngữ lập trình miền các giá trị này bị giới hạn, sự giới hạn này phụ thuộc vào kích thước của vùng nhớ biểu diễn số đó.
- Vì vậy khi nói tới một kiểu dữ liệu chúng ta phải đề cập tới 3 thông tin đặc trưng của nó đó là:.
- tên kiểu dữ liệu.
- kích thước vùng nhớ biểu diễn nó,miền giá trị - các phép toán có thể sử dụng..
- Các kiểu dữ liệu đơn giản trong C chỉ là các kiểu số, thuộc hai nhóm chính đó là số nguyên và số thực (số dấu phẩy động)..
- ¾ Nhóm các kiểu nguyên gồm có: char, unsigned char, int, unsigned int, short, unsigned short, long, unsigned long được mô tả trong bảng sau:.
- Kiểu dữ liệu tên kiểu (từ khoá tên kiểu).
- thước miền giá trị.
- kí tự có dấu char 1 byte từ -128 tới 127 kí tự không dấu unsigned char 1 byte từ 0 tới 255.
- số nguyên có dấu int 2 byte từ -32768 tới 32767 số nguyên không dấu unsigned int 2 byte từ 0 tới 65535 số nguyên ngắn có dấu short 2 byte từ -32768 tới 32767 số nguyên ngắn có dấu unsigned short 2 byte từ 0 tới 65535.
- số nguyên dài có dấu long 4 byte từ tới số nguyên dài không dấu unsigned long 4 byte từ 0 tới .
- Khuôn dạng số nguyên: mặc dù như trên chúng ta có kiểu số nguyên và kí tự (char) nhưng bản chất trong C chúng đều là các số nguyên mà thôi.
- Hệ thống biểu diễn các số nguyên dưới dạng dãy các bit (số nhị phân).
- Như chúng ta đã biết, một bit chỉ có thể biểu diễn được 2 giá trị là 0 và 1..
- Ta thấy với một nhóm có 2 bit (2 số nhị phân) thì có thể lưu được giá trị nhỏ nhất khi cả 2 bit đều bằng 0 và lớn nhất khi cả 2 bit bằng 1 có nghĩa là nó có thể biểu diễn được các số 0,1,2,3 tức 2 2 giá trị khác nhau.
- Với số nguyên 1 byte (unsigned char) thì giá trị nó có thể lưu trữ là .
- Tổng quát nếu kiểu dữ liệu có kích thước n bit thì có thể biểu diễn 2 n giá trị khác nhau là: 0,1,..(2 n –1)..
- Nhưng đó là trong trường hợp tất cả các bit dùng để biểu diễn giá trị số(các con số), tức là ta có số nguyên không dấu (số dương – unsigned.
- Nhưng số nguyên chúng ta cần có thể là số âm (số có dấu – signed), trong trường hợp này bit cao nhất được dùng biểu diễn dấu, như vậy chỉ còn n-1 bit để biểu diễn giá trị.
- Nếu số âm (có dấu) thì bit dấu có giá trị =1, ngược lại, nếu số có giá trị dương thì bit dấu có giá trị =0..
- Ví dụ với kiểu char (signed char) một byte thì có 7 bit để biểu diễn các con số, vậy nó có thể biểu diễn các số dương và (theo cách biểu diễn số âm – xem phần hệ đếm và biểu diễn số âm) nó biểu diễn được các số âm –1,..-128.
- Miền giá trị của các kiểu số nguyên khác được diễn giải tượng tự..
- Các bạn có thể đặt câu hỏi tại sao đã có kiểu int lại vẫn có kiểu short hay có sự khác nhau giữa int và short hay không?.
- Trên môi trường 32 bit thì int có kích thước là 4 byte, short có kích thước 2 byte, còn trên môi trường 16 bit thì chúng giống nhau..
- Thực ra sự quy định kích thước của các kiểu nguyên chỉ là:.
- kiểu char kích thước là 1 byte.
- kiểu short kích thước là 2 byte.
- kiểu long kích thước là 4 byte.
- kích thước kiểu short <= kích thước kiểu int <= kích thước kiểu long.
- ¾ Nhóm các kiểu số thực gồm: float, double, long double.
- Khuôn dạng biểu diễn của số thực không giống như số nguyên.
- Một số thực nói chung được biểu diễn theo ký pháp khoa học gồm phần định trị và phần mũ..
- khuôn dạng khác mà miền giá trị của số thực so với số nguyên có cùng kích thước cũng khác..
- Kiểu dữ liệu tên kiểu kích.
- thước (trị tuyệt đối)miền giá trị số thực với độ chính xác đơn float 4 byte 3.4e-38 ->.
- số thực với độ chính xác kép double 8 byte 1.7e-308 ->.
- Trong bảng trên miền giái trị chúng ta nói tới giá trị dương lớn nhất mà số thực có thể biểu diễn (giá trị âm nhỏ nhất lấy đối) và giá trị dương nhỏ nhất còn phân biệt được với 0..
- Ví dụ với kiểu float, giá trị dương lớn nhất là 3.4e và số dương nhỏ nhất có thể biểu diễn là 3.4e .
- Ngoài hai kiểu dữ liệu số mà chúng ta vừa đề cập trong C còn kiểu dữ liệu rất hay sử dụng đó là kiểu con trỏ.
- Chúng ta biết là các thành phần: biến, hằng, hàm.
- Một thành phần (biến, hằng) có thể lưu giá trị là địa chỉ của một thành phần khác được gọi là con trỏ..
- Khai báo con trỏ.
- khai báo biến con trỏ Ví dụ:.
- Kiểu void : Ngoài các kiểu dữ liệu trong C còn có những thành phần (con trỏ) không xác định kiểu, hoặc hàm không cần trả về giá trị trong trường hợp này chúng ta có con trỏ, hàm kiểu void

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt