Biến trong lập trình C

Biến trong C là gì? Đặc tả trong C như thế nào? Hãy cùng Quantrimang.com tìm hiểu chi tiết về biến trong C như thế nào nhé!

Một biến trong C không là gì nhưng là một tên được đưa ra đến bộ nhớ lưu trữ để chương trình có thể thao tác. Mỗi biến trong C có một kiểu xác định, để xác định cỡ và layout cho bộ nhớ biến đó. Phạm vi của giá trị có thể được dự trữ trong bộ nhớ, việc thiết lập các biểu thức có thể được áp dụng với biến.

Tên của biến có thể bao gồm chữ cái, chữ số và dấu gạch dưới (_), nhưng nó phải bắt đầu bằng ký tự chữ cái hoặc dấu gạch dưới. Chữ hoa và chữ thường là hai đối tượng phân biệt bởi vì C là ngôn ngữ phân biệt chữ hoa - chữ thường. Dựa vào những loại cơ bản giải thích ở chương trước, có những loại kiểu của biến cơ bản như sau:

KiểuMiêu tả
charLà biến số nguyên, có kích cỡ 1 byte.
intLà kiểu cho số tự nhiên.
floatGiá trị dấu chấm động độ chính xác đơn.
doubleGiá trị dấu chấm động độ chính xác kép.
voidĐại diện cho loại không có kiểu.

Ngôn ngữ lập trình C cho phép định nghĩa các loại kiểu biến khác nhau, có thể xem ở các chương sau như biến liệt kê, biến con trỏ, biến mảng, biến cấu trúc, biến Union,...

Định nghĩa biến trong ngôn ngữ C

Định nghĩa biến nghĩa là thông báo với trình biên dịch nơi và cách tạo lưu trữ cho biến đó. Một định nghĩa biến xác định một kiểu dữ liệu và chứa danh sách của một hay nhiều biến của kiểu đó như sau:

kieu_du_lieu danh_sach_bien;

Ở đây, kieu_du_lieu là của kiểu dữ liệu của ngôn ngữ C như char, w_char, int, float, double, bool hay bất kỳ kiểu đối tượng được người dùng định nghĩa… danh_sach_bien có thể bao gồm một hoặc nhiều tên định danh ngăn cách nhau bởi dấu phảy. Vài ví dụ khai báo hợp lệ của biến như sau:

int    i, j;
char   ho, ten, c, ch;
float  f, luong, diemthi;
double d;

Dòng int i, j; vừa khai báo và định nghĩa cho biến i, j, k và hướng dẫn trình biên dịch để tạo các biến dưới tên i, j, k với kiểu int.

Biến có thể được khởi tạo (được gán các giá trị ban đầu) trong khai báo của nó. Một phần khởi tạo bao gồm một dấu "=" theo sau bởi một biểu thức hằng số số như sau:

kieu_du_lieu ten_bien = gia_tri;

Vài ví dụ dưới đây:

extern int d = 3, f = 5;    // khai bao bien d va f. 
int d = 3, f = 5;           // dinh nghia va khoi tao bien d va f. 
byte z = 22;                // dinh nghia va khoi tao bien z. 
char x = 'hoclaptrinhc';               // bien x co gia tri la 'hoclaptrinhc'.

Với định nghĩa không có giá trị khởi tạo, biến static có thể lưu trữ với giá trị NULL, (tất cả các byte có giá trị 0), giá trị ban đầu của tất cả các biến của tất cả các kiểu khác có giá trị không xác định.

Tóm lại, biến là các container chứa giá trị dữ liệu, chẳng hạn như các con số và ký tự. Ngôn ngữ lập trình C mang tới các kiểu biến khác nhau (được xác định bằng từ khóa), ví dụ:

  • Int - lưu số nguyên, không có số thập phân, chẳng hạn như 123 hoặc -123
  • Float - lưu số kèm dấu phẩy với số thập phân, chẳng hạn như 19.99 hoặc -19.99.
  • Char - lưu các ký tự đơn lẻ như 'a' hoặc 'B'. Giá trị char được bao quanh bởi các dấu nháy đơn.

Khai báo biến trong ngôn ngữ C:

Khai báo biến cung cấp một sự bảo đảm cho trình biên dịch nhận biết rằng không có biến nào với kiểu và tên giống nó được khai báo trước đó, nếu không sẽ xảy ra lỗi ở quá trình biên dịch. Một khai báo biến chỉ có ý nghĩa ở thời gian biên dịch, trình biên dịch cần khai báo biến cụ thể tại thời gian nối với chương trình.

Một khai báo biến rất hữu dụng khi bạn sử dụng đồng thời nhiều file và bạn định nghĩa biến của bạn ở một trong những file đó. Bạn có thể sử dụng từ khóa extern để khai báo biến ở bất kì nơi đâu. Do đó bạn có thể khai báo một biến nhiều lần trong chương trình C nhưng chỉ phải định nghĩa trong một file, một hàm hay một khối code.

Thông thường biến extern được khai báo trong file.h vì khi muốn sử dụng bạn chỉ cần include file .h là có thể sử dụng biến.

Ví dụ

Thử ví dụ dưới đây, nơi biến được khai báo ở trên đầu, nhưng chúng được định nghĩa và khởi tạo trong hàm main:

#include <stdio.h>

// phan khai bao bien:
extern int a, b;
extern int c;
extern float f;

int main ()
{
  /* phan dinh nghia bien: */
  int a, b;
  int c;
  float f;
 
  /* phan khoi tao gia tri thuc su */
  a = 15;
  b = 35;
  
  c = a + b;
  printf("Gia tri cua c la : %d \n", c);

  f = 50.0/3.0;
  printf("Gia tri cua f la : %f \n", f);
  
  printf("===========================\n");
  printf("QTM chuc cac ban hoc tot! \n");
 
  return 0;
}

Biên dịch và chạy chương trình C để xem kết quả:

Vài khái niệm có thể áp dụng trong khai báo hàm nơi bạn cung cấp tên hàm ở thời điểm nó khai báo và định nghĩa nó ở bất kì nơi đâu. Ví dụ:

// phan khai bao ham
int tenham();

int main()
{
    // loi goi ham
    int i = tenham();
}

// phan dinh nghia ham
int tenham()
{
    return 0;
}

Lvalue và Rvalue trong C:

Có hai kiểu Expression:

  • lvalue: Expression mà chỉ tới vị trí bộ nhớ là "lvalue". Một lvalue có thể xuất hiện hoặc bên trái hoặc bên phải của một phép gán.
  • rvalue: Liên quan tới giá trị dữ liệu được lưu trữ tại một số địa chỉ trong bộ nhớ. Một rvalue là một expression mà không thể có một giá trị được gán tới nó, nghĩa là một rvalue có thể xuất hiện ở bên phải nhưng không phải bên trái của một phép gán.

Các biến là các lvalue và thường xuất hiện ở cạnh trái của phép gán. Các hằng số là số là rvalue và không thể được gán và không thể xuất hiện bên cạnh trái của phép gán. Dưới đây là một khai báo hợp lệ:

int g = 20;

Nhưng sau đây là một khai báo không hợp lệ và sẽ có thông báo lỗi:

10 = 20;

Xác định kiểu dữ liệu

Xác định kiểu dữ liệu thường được dùng cùng với hàm print() để cho trình biên dịch biết biến đang được phân loại thuộc kiểu dữ liệu nào. Về cơ bản, nó là một “placeholder” cho giá trị biến.

Một format specifier bắt đầu bằng dấu %, theo sau là một ký tự. Ví dụ, để xuất giá trị của một biến int, bạn phải dùng xác định định dạng %d hoặc %i được bao quanh bởi dấu ngoặc kép, bên trong hàm printf():

int myNum = 15;
printf("%d", myNum); // Outputs 15

Để in các kiểu khác, dùng %c cho char và %f cho float:

// Create variables
int myNum = 15;            // Integer (whole number)
float myFloatNum = 5.99;   // Floating point number
char myLetter = 'D';       // Character

// Print variables
printf("%d\n", myNum);
printf("%f\n", myFloatNum);
printf("%c\n", myLetter);

Để kết hợp cả văn bản và biến, phân tách chúng bằng dấu phẩy bên trong hàm printf():

int myNum = 15;
printf("My favorite number is: %d", myNum);

Bài trước: Kiểu dữ liệu trong lập trình C

Bài tiếp: Hằng số trong lập trình C

Thứ Năm, 22/12/2022 14:08
4,36 👨 11.925
1 Bình luận
Sắp xếp theo
  • Code Ngầu
    Code Ngầu hay
    Thích Phản hồi 01/07/20
    ❖ Lập trình C