Lập trình D - Biến
Một biến không là gì khác ngoài tên được đặt cho một vùng lưu trữ mà chương trình của chúng ta có thể thao tác. Mỗi biến trong D có một kiểu cụ thể, xác định kích thước và cách bố trí bộ nhớ của biến; phạm vi giá trị có thể được lưu trữ trong bộ nhớ đó; và tập hợp các thao tác có thể áp dụng cho biến.
Tên của một biến có thể bao gồm các chữ cái, chữ số và ký tự gạch dưới. Nó phải bắt đầu bằng một chữ cái hoặc một dấu gạch dưới. Chữ hoa và chữ thường khác nhau vì D phân biệt chữ hoa chữ thường. Dựa trên các kiểu cơ bản đã giải thích ở chương trước, sẽ có các kiểu biến cơ bản sau:
Sr.No. | Loại & Mô tả |
---|---|
1 | char Điển hình là một octet đơn (một byte). Đây là một kiểu số nguyên. |
2 | int Kích thước tự nhiên nhất của số nguyên cho máy. |
3 | float Một giá trị dấu chấm động chính xác duy nhất. |
4 | double Giá trị dấu phẩy động có độ chính xác kép. |
5 | void Đại diện cho sự vắng mặt của loại. |
Ngôn ngữ lập trình D cũng cho phép định nghĩa nhiều loại biến khác nhau như Enumeration, Pointer, Array, Structure, Union, v.v., chúng ta sẽ trình bày trong các chương tiếp theo. Đối với chương này, chúng ta hãy chỉ nghiên cứu các kiểu biến cơ bản.
Định nghĩa biến trong D
Một định nghĩa biến cho trình biên dịch biết vị trí và bao nhiêu không gian cần tạo cho biến. Định nghĩa biến chỉ định một kiểu dữ liệu và chứa danh sách một hoặc nhiều biến của kiểu đó như sau:
type variable_list;
Đây, type phải là kiểu dữ liệu D hợp lệ bao gồm char, wchar, int, float, double, bool hoặc bất kỳ đối tượng nào do người dùng xác định, v.v., và variable_listcó thể bao gồm một hoặc nhiều tên định danh được phân tách bằng dấu phẩy. Một số khai báo hợp lệ được hiển thị ở đây -
int i, j, k;
char c, ch;
float f, salary;
double d;
Dòng int i, j, k;cả khai báo và định nghĩa các biến i, j và k; hướng dẫn trình biên dịch tạo các biến có tên i, j và k kiểu int.
Các biến có thể được khởi tạo (gán giá trị ban đầu) trong khai báo của chúng. Bộ khởi tạo bao gồm một dấu bằng theo sau là một biểu thức hằng số như sau:
type variable_name = value;
Ví dụ
extern int d = 3, f = 5; // declaration of d and f.
int d = 3, f = 5; // definition and initializing d and f.
byte z = 22; // definition and initializes z.
char x = 'x'; // the variable x has the value 'x'.
Khi một biến được khai báo trong D, nó luôn được đặt thành 'trình khởi tạo mặc định', có thể được truy cập thủ công dưới dạng T.init Ở đâu T là loại (ví dụ: int.init). Bộ khởi tạo mặc định cho các kiểu số nguyên là 0, cho Booleans false và cho các số dấu phẩy động NaN.
Khai báo biến trong D
Một khai báo biến cung cấp sự đảm bảo cho trình biên dịch rằng có một biến tồn tại với kiểu và tên đã cho để trình biên dịch tiến hành biên dịch thêm mà không cần chi tiết đầy đủ về biến. Khai báo biến chỉ có ý nghĩa tại thời điểm biên dịch, trình biên dịch cần khai báo biến thực tế tại thời điểm liên kết của chương trình.
Thí dụ
Hãy thử ví dụ sau, trong đó các biến đã được khai báo khi bắt đầu chương trình, nhưng được định nghĩa và khởi tạo bên trong hàm chính:
import std.stdio;
int a = 10, b = 10;
int c;
float f;
int main () {
writeln("Value of a is : ", a);
/* variable re definition: */
int a, b;
int c;
float f;
/* Initialization */
a = 30;
b = 40;
writeln("Value of a is : ", a);
c = a + b;
writeln("Value of c is : ", c);
f = 70.0/3.0;
writeln("Value of f is : ", f);
return 0;
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Value of a is : 10
Value of a is : 30
Value of c is : 70
Value of f is : 23.3333
Giá trị và giá trị trong D
Có hai loại biểu thức trong D -
lvalue - Một biểu thức là giá trị có thể xuất hiện ở dạng bên trái hoặc bên phải của một phép gán.
rvalue - Một biểu thức là một giá trị có thể xuất hiện ở bên phải nhưng không xuất hiện ở bên trái của một phép gán.
Các biến là các giá trị và do đó có thể xuất hiện ở bên trái của một phép gán. Các chữ số là các giá trị và do đó có thể không được chỉ định và không thể xuất hiện ở phía bên trái. Câu lệnh sau là hợp lệ -
int g = 20;
Nhưng sau đây không phải là một câu lệnh hợp lệ và sẽ tạo ra lỗi thời gian biên dịch -
10 = 20;