Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tại sao các biến C / C ++ không bắt đầu bằng số


Trong C / C ++, tên biến có thể có bảng chữ cái, số và ký tự gạch dưới (_). Có một số từ khóa trong ngôn ngữ C / C ++, ngoài chúng ra, mọi thứ đều được coi là định danh. Định danh là tên của biến, hằng số, hàm, v.v.

Chúng tôi không thể chỉ định mã định danh bắt đầu bằng một số vì có bảy giai đoạn của trình biên dịch như sau.

  • Phân tích từ vựng
  • Phân tích cú pháp
  • Phân tích ngữ nghĩa
  • Tạo mã trung gian
  • Tối ưu hóa mã
  • Tạo mã
  • Bảng ký hiệu

Không có điều nào ở trên ủng hộ rằng một biến bắt đầu bằng một số. Điều này là do trình biên dịch bị nhầm lẫn nếu là một số hoặc định danh cho đến khi nó đạt đến một bảng chữ cái sau các số. Vì vậy, trình biên dịch sẽ phải quay lại giai đoạn phân tích từ vựng không được hỗ trợ. Trình biên dịch sẽ có thể xác định mã thông báo dưới dạng mã định danh hoặc chữ sau khi xem xét ký tự đầu tiên.

Sau đây là một ví dụ minh họa khai báo biến trong C.

Ví dụ

#include <stdio.h>
int main() {
   int 5s = 8;
   int _4a = 3;
   int b = 12;
   printf("The value of variable 5s : %d", 5s);
   printf("The value of variable _4a : %d", _4a);
   printf("\nThe value of variable b : %d", b);
   return 0;
}

Chương trình trên dẫn đến lỗi "hậu tố không hợp lệ" s "trên hằng số nguyên" vì một biến bắt đầu bằng 5. Nếu chúng ta loại bỏ điều này, thì chương trình sẽ hoạt động bình thường.

Ví dụ minh họa chương trình mới như sau.

Ví dụ

#include <stdio.h>
int main() {
   int _4a = 3;
   int b = 12;
   printf("The value of variable _4a : %d", _4a);
   printf("\nThe value of variable b : %d", b);
   return 0;
}

Đầu ra

Kết quả của chương trình trên như sau.

The value of variable _4a : 3
The value of variable b : 12