Khởi tạo biến
Bất kỳ biến nào cũng có thể được khởi tạo trong quá trình định nghĩa. Nếu một biến không được khởi tạo rõ ràng, giá trị lưu trữ trong biến này có thể là bất kỳ giá trị nào. Khởi tạo ngầm không được sử dụng.
Biến toàn cục và biến tĩnh chỉ có thể được khởi tạo bởi một hằng số của kiểu tương ứng hoặc một biểu thức hằng. Biến cục bộ có thể được khởi tạo bởi bất kỳ biểu thức nào, không chỉ là hằng số.
Việc khởi tạo biến toàn cục và biến tĩnh chỉ được thực hiện một lần. Việc khởi tạo biến cục bộ được thực hiện mỗi lần gọi hàm tương ứng.
Ví dụ:
int n = 1;
string s = "hello";
double f[] = { 0.0, 0.236, 0.382, 0.5, 0.618, 1.0 };
int a[4][4] = { {1, 1, 1, 1}, {2, 2, 2, 2}, {3, 3, 3, 3}, {4, 4, 4, 4 } };
//--- từ tetris
int right[4]={WIDTH_IN_PIXELS+VERT_BORDER,WIDTH_IN_PIXELS+VERT_BORDER,
WIDTH_IN_PIXELS+VERT_BORDER,WIDTH_IN_PIXELS+VERT_BORDER};
//--- khởi tạo tất cả các trường của cấu trúc với giá trị bằng không
MqlTradeRequest request={};
2
3
4
5
6
7
8
9
Danh sách giá trị của các phần tử mảng phải được bao trong dấu ngoặc nhọn. Các chuỗi khởi tạo bị bỏ qua được coi là bằng 0.
Nếu kích thước của mảng được khởi tạo không được chỉ định, nó sẽ được xác định bởi trình biên dịch, dựa trên kích thước của chuỗi khởi tạo.
Ví dụ:
struct str3
{
int low_part;
int high_part;
};
struct str10
{
str3 s3;
double d1[10];
int i3;
};
void OnStart()
{
str10 s10_1={{1,0},{1.0,2.1,3.2,4.4,5.3,6.1,7.8,8.7,9.2,10.0},100};
str10 s10_2={{1,0},{},100};
str10 s10_3={{1,0},{1.0}};
//---
Print("1. s10_1.d1[5] = ",s10_1.d1[5]);
Print("2. s10_2.d1[5] = ",s10_2.d1[5]);
Print("3. s10_3.d1[5] = ",s10_3.d1[5]);
Print("4. s10_3.d1[0] = ",s10_3.d1[0]);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Đối với biến kiểu cấu trúc, việc khởi tạo một phần được phép, cũng như đối với mảng tĩnh (với kích thước được đặt ngầm). Bạn có thể khởi tạo một hoặc nhiều phần tử đầu tiên của cấu trúc hoặc mảng, các phần tử khác sẽ được khởi tạo bằng số không trong trường hợp này.
Xem thêm
Kiểu dữ liệu, Đóng gói và mở rộng kiểu, Phạm vi hiển thị và tuổi thọ của biến, Tạo và xóa đối tượng