Chương 2. Cơ bản về ngôn ngữ lập trình C/C++
2.2. Các thành phần cơ bản của ngôn ngữ C
Từ khóa là những từ ngôn ngữ lập trình dành riêng để phục vụ cho mục đích của nó. Đối với ngôn ngữ C, các từ khóa được viết bằng chữ thường. Sau đây là các từ khóa của ngôn ngữ C:
asm auto break case
char const continue default
do double else enum
extern far float for
goto huge if int
long near pascal register
return short static struct
signed sizeof switch typedef
union unsigned void while
Chú ý: Người lập trình không được phép đặt tên trùng với tên của các từ khóa.
2.2.2. Lời chú thích Có 2 dạng:
/* .... Dòng chú thích ... */ tạo chú thích trên nhiều dòng.
// .... Dòng chú thích ... tạo chú thích trên một dòng.
Ví dụ 2.3:
/* Chức năng của hàm này là
tính tổng của n số tự nhiên đầu tiên*/
int Sum(int n) {
...
}
// Bắt đầu lặp While(a < b) {
...
}
Khi gặp các chú thích, C không dịch chúng sang ngôn ngữ máy.
2.2.3. Các kiểu dữ liệu
2.2.3.1. Các kiểu dữ liệu cơ bản - Kiểu ký tự (char)
- Kiểu số nguyên - Kiểu số thực - Kiểu void
Các kiểu dữ liệu này sẽ được giới thiệu chi tiết ở mục 2.3.
2.2.3.2. Các kiểu dữ liệu có cấu trúc - Kiểu mảng
- Kiểu chuỗi (string) - Kiểu cấu trúc (struct) - Kiểu file
Các kiểu dữ liệu này sẽ được giới thiệu chi tiết ở các chương tiếp theo.
2.2.4. Biến
Biến là một đại lượng dùng để chứa nhiều giá trị khác nhau trong một chương trình. Chúng được lưu trữ ở bộ nhớ trong tại một địa chỉ nào đó.
2.2.4.1. Tên biến
Mỗi biến khi sử dụng trong chương trình đều phải được đặt tên theo quy định như sau:
- Tên biến là một dãy ký tự bao gồm: chữ cái, chữ số và dấu gạch chân ( _ )
- Ký tự đầu tiên phải là chữ cái hoặc ký tự _ Chú ý:
- Khi đặt tên biến không được đặt trùng tên với các từ khóa của C.
- Tên biến trong C có sự phân biệt giữa chữ hoa và chữ thường.
Ví dụ: aBc, abc hay ABC là các tên biến khác nhau.
- Độ dài mặc định của tên biến là 32.
- Các tên hằng, tên mảng, tên hàm, tên kiểu, tên con trỏ,... được đặt theo quy định của tên biến.
- Để thuận tiện trong việc lập trình, các tên biến chúng ta nên đặt in thường (lower_case), các tên hằng nên đặt in hoa (UPPER_CASE), các tên kiểu, tên hàm nên đặt theo dạng in hoa ký tự đầu (Title_Case).
2.2.4.2. Khai báo biến
Mọi biến đều phải được khai báo trước khi sử dụng. Việc khai báo biến thực hiện theo cú pháp sau đây:
<Tên_kiểu_dữ liệu> <Danh_sách_biến>;
Ví dụ 2.4:
int n; // khai báo biến n kiểu số nguyên float a, b; // khai báo hai biến a,b kiểu số thực
Biến có thể được khai báo ở mọi nơi trong chương trình, phạm vi ảnh hưởng của biến tùy thuộc vào vị trí của nó trong chương trình.
Chú ý:
- Có thể khai báo và khởi gán giá trị ban đầu cho các biến. Cú pháp như sau:
<Tên_kiểu> <Tên_biến> = <Giá_trị_khởi_động>;
Ví dụ 2.5:
char ch = 97; // khởi gán ch là 97
int a = 65, b = 67; // khởi gán giá trị đầu cho a và b float x = 6.5, y; // khởi gán giá trị đầu cho x - Lấy địa chỉ của biến: Mỗi biến khi được khai báo sẽ được cấp phát một vùng ở bộ nhớ trong, vùng nhớ đó có kích thước là kích thước của kiểu dữ liệu được khai báo, gồm một số byte liên tiếp. Để lấy địa chỉ của biến (tức là lấy địa chỉ của vùng nhớ chứa giá trị của biến) ta dùng phép toán & , cú pháp như sau:
&<tên_biến>
2.2.5. Hằng
Hằng là một đại lượng mà giá trị của nó không thay đổi trong quá trình thực hiện chương trình.
2.2.5.1. Khai báo hằng
Cú pháp: const <kiểu> <tên_hằng> = <giá_trị>;
hoặc #define <Tên_hằng> <giá_trị>
Câu lệnh #define là câu lệnh tiền xử lý nên chỉ có thể đặt ở ngoài các hàm ở đầu chương trình hoặc bắt đầu của một khối.
Ví dụ 2.6:
#define PI 3.1416
const long long LCB = 1490000;
2.2.5.2. Phân loại hằng - Hằng nguyên - Hằng thập phân - Hằng ký tự - Hằng chuỗi
Ví dụ 2.7:
#define MAXINT 32767
#define PI 3.1416 const float PI = 3.1416;
#define OK ‘Y’
#define UED “Truong Dai hoc Su pham”
2.2.6. Biểu thức
Biểu thức là một công thức tính toán bao gồm một dãy các toán hạng được kết nối với nhau bởi các toán tử, có thể sử dụng các dấu ngoặc đơn ( ), và cho kết quả là một giá trị gọi là giá trị của biểu thức.
- Toán hạng: gồm các biến, các hằng, các hàm (lời gọi hàm).
- Toán tử: là các phép toán số học, logic, quan hệ, ...
Ví dụ 2.8: Các dãy biểu diễn dưới đây là các biểu thức (9-6)*(2 + n) //biểu thức số học 8*a + b //biểu thức số học f()/sin(4*x) //biểu thức số học (x+y) > (z+t) //biểu thức logic 2.2.7. Câu lệnh
2.2.7.1. Câu lệnh đơn giản
- Câu lệnh gán ( = ): <Tên biến> = <Biểu thức>;
- Các lệnh xuất nhập dữ liệu: cin/scanf, cout/printf.
- Lời gọi hàm.
2.2.7.2. Câu lệnh có cấu trúc
- Câu lệnh ghép: gồm nhiều câu lệnh đơn được đặt trong cặp dấu ngoặc { }.
{
S1; S2; … Sn;
}
- Các cấu trúc điều khiển: if.., switch..., for..., while...