Khác nhau giữa biến và hằng là :
– Hằng: Giá trị của hằng không thể thay đổi trong quá trình thực hiện chương trình.
– Biến: giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình.
– Cách khai báo biến:
Var<tên biến>:<kiểu dữ liệu>;
VD: Var a,b:integer;
C:string;
– Cách khai báo hằng:
const <tên hằng>=<giá trị của hằng>;
VD: Const pi=3.14;
Contents
Hằng và Biến
Nếu các bạn chưa từng học lập trình, chắc các bạn đang còn xa lạ với hằng và biến. Tuy nhiên bạn cũng không cần phải lo lắng vì đây là hai khái niệm khá cơ bản của lập trình và có thể nắm bắt nhanh chóng.
Lưu ý: Trong toán học cũng có khái hiện hằng và biến tuy vậy thì hằng và biến trong lập trình giống không hẳn giống với trong toán học. Mặc dù có nhiều sự tương đồng nhưng cả phạm vi sử dụng lẫn cách sử dụng trong lập trình và trong toán học không hoàn toàn giống nhau.
Trong lập trình thì:
- Hằng hay hằng số (constant) dùng để lưu trữ dữ liệu, dữ liệu của hằng luôn luôn cố định và không thay đổi trong suốt chương trình.
- Biến hay biến số (varialbe) dùng để lưu trữ dữ liệu nhưng dữ liệu được lưu trữ trong biến có thể thay đổi trong khi chạy chương trình.
Để hiểu rõ hơn chúng ta sẽ lần lượt tìm hiểu cụ thể từng ví dụ có sử dụng hằng và biến.
Ví Dụ Về Hằng
Trong ví dụ sau đây chúng ta định nghĩa một hằng có tên là SITE_DOMAIN
:
#include <stdio.h>
int main() {
const char TEMP_FOLDER[6] = "C:\\tmp";
printf("Địa chỉ thư mục tạm trên máy là: %s\n", TEMP_FOLDER);
return 0;
}
Trong trường hợp này bạn có thể sử dụng nhưng không thể thay đổi giá trị của TEMP_FOLDER
.
Lưu ý: Trong hầu hết các ngôn ngữ lập trình thì tên hằng thường được để in hoa tuy nhiên điều này là không bắt buộc và bạn có thể sử dụng chữ in thường.
Ngoài ra sử dụng cú pháp ở trên thì trong C để khai báo một hằng số bạn có thể sử dụng macro như sau:
#include <stdio.h>
#define TEMP_FOLDER "C:\\tmp"
int main() {
printf("Địa chỉ thư mục tạm trên máy là: %s\n", TEMP_FOLDER);
return 0;
}
Ví Dụ Về Biến
Trong ví dụ sau đây chúng ta định nghĩa một biến có tên là year
được định nghĩa với kiểu dữ liệu là int
:
#include <stdio.h>
int main() {
int year;
year = 2017;
printf("Năm hiện tại là: %d\n", year);
year = 2018;
printf("Năm hiện tại là: %d\n", year);
return 0;
}
Trong trường hợp này giá trị của biến year
có thể thay đổi trong quá trình chạy chương trình như bạn có thể thấy ở trên.
Kiểu Dữ Liệu Của Biến
Dữ liệu trong lập trình được phân chia thành các kiểu khác nhau ví dụ như kiểu số (gồm các số nguyên), kiểu chuỗi (gồm chuỗi các ký tự), kiểu float gồm các số thực… Một số ngôn ngữ lập trình như C thì chúng ta cần định nghĩa kiểu dữ liệu cho biến khi khai báo biến. Ví dụ biến year
sau đây được khai báo với kiểu dữ liệu integer:
int year;
Việc khai báo kiểu dữ liệu của biến giúp trình biên dịch compiler của C (hay chính là GCC) biết được sẽ cần phải đăng ký bao nhiêu dung lượng của bộ nhớ RAM để lưu trữ giá trị của biến. Ví dụ với kiểu dữ liệu số sẽ cần tới 2 hoặc tối đa là 4 bytes dung lượng của RAM để lưu trữ.
Các ngôn ngữ yêu cầu định nghĩa kiểu dữ liệu của biến khi khai báo như trên còn được gọi là ngôn ngữ kiểu tĩnh hay static typing language.
Với một số ngôn ngữ lập trình khác như PHP hoặc Ruby thì lập trình viên không cần phải khai báo kiểu dữ liệu cho biến và trình biên soạn interpreter sẽ tự động thực hiện việc gán dữ liệu bộ nhớ cho biến dựa trên giá trị mà biến lưu trữ:
<?php
$year = 2018;
echo "Năm nay là:", $year;
$year = "Hai không mười tám";
echo "Năm nay là:", $year;
?>
Các ngôn ngữ hỗ trợ tính năng cho phép không cần định nghĩa kiểu dữ liệu cho biến này còn được gọi là ngôn ngữ kiểu động hay dynamic typing language.