Cho đến bây giờ, chúng ta đã thảo luận về những điều cơ bản của chương trình C là gì, cách biên dịch và thực thi chương trình, và bộ tiền xử lý là gì. Nếu bạn đã xem qua các hướng dẫn này, thì đã đến lúc chúng ta thảo luận về chủ đề tiếp theo, đó là biến.
Biến là một trong những thành phần cốt lõi của lập trình C vì chúng lưu trữ các giá trị để lập trình viên sử dụng theo yêu cầu của họ. Hãy cùng tìm hiểu những điều cơ bản của chúng thông qua một ví dụ. Sau đây là một chương trình C cơ bản:
Trong các hướng dẫn lập trình C trước đây, chúng tôi đã giải thích những điều như 'stdio.h' là gì, '#include' có nghĩa là gì và hàm là gì (đặc biệt là 'main'). Vì vậy, chúng ta sẽ chuyển thẳng đến phần biến.
Dòng 'int a = 10' có nghĩa là có một biến có tên là 'a' có thể chứa các giá trị kiểu số nguyên ('int') và giá trị hiện tại mà nó đang giữ là '10'. Tương tự như vậy, 'b' có thể chứa các ký tự và 'c' có thể chứa các số dấu phẩy động, với các giá trị hiện tại của chúng lần lượt là 'z' và '1.5'.
Chương trình ví dụ được hiển thị ở trên in các giá trị này trong đầu ra thông qua hàm 'Printf'. Lưu ý rằng %d, %c và %f được sử dụng để cho hàm 'printf' biết rằng các biến 'a', 'b', 'c' phải được coi là số nguyên, ký tự và số thực, tương ứng.
Tất nhiên, bạn có thể làm nhiều hơn thế nữa ngoài việc chỉ in các giá trị này trong đầu ra. Ví dụ, chương trình sau đây tính giai thừa của số 5.
Đối với những ai chưa biết, giai thừa của một số, chẳng hạn như 'n', là kết quả của phép nhân sau:
Vì vậy, nếu số đó là 5, thì giai thừa của 5 (hoặc 5!) sẽ là 5x4x3x2x1, bằng 120.
Quay lại chương trình, chúng ta đã định nghĩa hai biến số nguyên có tên là 'num' và 'result'. Trong khi num chứa số có giai thừa cần tính (trong trường hợp này là 5), thì 'result' chỉ giữ giá trị giả '1' để bắt đầu. Sau đó là vòng lặp 'while'.
Như tên gọi của nó, vòng lặp được sử dụng trong các hàm C để thực hiện lặp đi lặp lại một tập hợp các lệnh. Trong trường hợp 'while', vòng lặp bắt đầu bằng cách kiểm tra một điều kiện (trong trường hợp này là 'num phải lớn hơn không') và sau đó các lệnh bên trong vòng lặp được thực hiện lặp đi lặp lại cho đến khi điều kiện while trở thành sai.
Trong trường hợp của chúng ta, giá trị của 'num' ban đầu là 5. Vì vậy, quá trình thực thi sẽ vào bên trong vòng lặp và giá trị đầu tiên của result 'sẽ' là '5' (1x5). Sau đó, 'num' trở thành 'num -1', điều này có nghĩa là giá trị mới của 'num' bây giờ là 4.
Sau đó, vòng lặp thực thi lại vì 4 vẫn lớn hơn không. Lần này, 'result' sẽ là 5x4, bằng 20. Và 'num' sau đó trở thành (4-1), bằng 3. Theo cách này, vòng lặp tiếp tục thực thi cho đến khi 'num' trở thành 0 và tại thời điểm đó, result là '120', là giai thừa của 5.
Đây là đầu ra do chương trình này tạo ra:
Bây giờ, thay vì một giá trị cụ thể (như '5' trong trường hợp này), bạn sẽ làm gì nếu muốn người dùng chương trình chỉ định số có giai thừa cần tính? Vâng, điều đó có thể được thực hiện theo cách sau:
Vì vậy, ở đây, chúng tôi đã sử dụng một hàm mới có tên là 'scanf', thực hiện hoàn toàn ngược lại với 'printf' - nó chấp nhận đầu vào từ người dùng.
Bây giờ, mỗi biến có một lượng bộ nhớ nhất định được liên kết với nó theo đơn vị byte. Hàm scanf yêu cầu bạn phải truyền địa chỉ bắt đầu của bộ nhớ biến, bạn có thể truy cập bằng cách đặt '&' trước tên biến.
Chúng tôi đã giới thiệu một biến mới 'temp' ở đây vì chúng tôi cần số thực tế mà người dùng truyền (được lưu trữ trong 'num' ở đây) trong câu lệnh 'printf' cuối cùng.
Trong hướng dẫn này, chúng tôi đã đề cập đến những điều cơ bản về biến. Hướng dẫn này sẽ cung cấp cho bạn ý tưởng cơ bản về biến là gì và cách chúng có thể được sử dụng trong ngôn ngữ lập trình C. Có một số khía cạnh khác liên quan đến biến cần được thảo luận - chúng tôi sẽ thực hiện điều đó trong hướng dẫn tiếp theo.
Biến là một trong những thành phần cốt lõi của lập trình C vì chúng lưu trữ các giá trị để lập trình viên sử dụng theo yêu cầu của họ. Hãy cùng tìm hiểu những điều cơ bản của chúng thông qua một ví dụ. Sau đây là một chương trình C cơ bản:
Mã:
#include
int main (void)
{
int a = 10;
char b = 'z';
float c = 1.5;
printf("\n a=%d, b=%c, c=%f \n", a,b,c);
return 0;
}
Dòng 'int a = 10' có nghĩa là có một biến có tên là 'a' có thể chứa các giá trị kiểu số nguyên ('int') và giá trị hiện tại mà nó đang giữ là '10'. Tương tự như vậy, 'b' có thể chứa các ký tự và 'c' có thể chứa các số dấu phẩy động, với các giá trị hiện tại của chúng lần lượt là 'z' và '1.5'.
Chương trình ví dụ được hiển thị ở trên in các giá trị này trong đầu ra thông qua hàm 'Printf'. Lưu ý rằng %d, %c và %f được sử dụng để cho hàm 'printf' biết rằng các biến 'a', 'b', 'c' phải được coi là số nguyên, ký tự và số thực, tương ứng.
Tất nhiên, bạn có thể làm nhiều hơn thế nữa ngoài việc chỉ in các giá trị này trong đầu ra. Ví dụ, chương trình sau đây tính giai thừa của số 5.
Mã:
#include
int main (void)
{
int num = 5;
int result = 1;
while (num > 0)
{
result = result * num;
num = num -1;
}
printf("\n Giai thừa của 5 là %d\n", result);
return 0;
}
Mã:
nx(n-1)x(n-2)x.....1
Quay lại chương trình, chúng ta đã định nghĩa hai biến số nguyên có tên là 'num' và 'result'. Trong khi num chứa số có giai thừa cần tính (trong trường hợp này là 5), thì 'result' chỉ giữ giá trị giả '1' để bắt đầu. Sau đó là vòng lặp 'while'.
Như tên gọi của nó, vòng lặp được sử dụng trong các hàm C để thực hiện lặp đi lặp lại một tập hợp các lệnh. Trong trường hợp 'while', vòng lặp bắt đầu bằng cách kiểm tra một điều kiện (trong trường hợp này là 'num phải lớn hơn không') và sau đó các lệnh bên trong vòng lặp được thực hiện lặp đi lặp lại cho đến khi điều kiện while trở thành sai.
Trong trường hợp của chúng ta, giá trị của 'num' ban đầu là 5. Vì vậy, quá trình thực thi sẽ vào bên trong vòng lặp và giá trị đầu tiên của result 'sẽ' là '5' (1x5). Sau đó, 'num' trở thành 'num -1', điều này có nghĩa là giá trị mới của 'num' bây giờ là 4.
Sau đó, vòng lặp thực thi lại vì 4 vẫn lớn hơn không. Lần này, 'result' sẽ là 5x4, bằng 20. Và 'num' sau đó trở thành (4-1), bằng 3. Theo cách này, vòng lặp tiếp tục thực thi cho đến khi 'num' trở thành 0 và tại thời điểm đó, result là '120', là giai thừa của 5.
Đây là đầu ra do chương trình này tạo ra:
Mã:
Factorialof5is120
Mã:
#include
int main (void)
{
int num = 0, temp=0;
printf("\n Nhập một số nguyên dương: ");
scanf("%d", &num);
temp = num;
int result = 1;
while (temp > 0)
{
result = result * temp;
temp = temp -1;
}
printf("\n Giai thừa của %d là %d\n", num, result);
return 0;
}
Bây giờ, mỗi biến có một lượng bộ nhớ nhất định được liên kết với nó theo đơn vị byte. Hàm scanf yêu cầu bạn phải truyền địa chỉ bắt đầu của bộ nhớ biến, bạn có thể truy cập bằng cách đặt '&' trước tên biến.
Chúng tôi đã giới thiệu một biến mới 'temp' ở đây vì chúng tôi cần số thực tế mà người dùng truyền (được lưu trữ trong 'num' ở đây) trong câu lệnh 'printf' cuối cùng.
Trong hướng dẫn này, chúng tôi đã đề cập đến những điều cơ bản về biến. Hướng dẫn này sẽ cung cấp cho bạn ý tưởng cơ bản về biến là gì và cách chúng có thể được sử dụng trong ngôn ngữ lập trình C. Có một số khía cạnh khác liên quan đến biến cần được thảo luận - chúng tôi sẽ thực hiện điều đó trong hướng dẫn tiếp theo.