為什麼 C/C++ 變數不能以數字開頭


在 C/C++ 中,變數名可以包含字母、數字和下劃線 (_) 字元。C/C++ 語言中有一些關鍵字,除此之外,所有內容都被視為識別符號。識別符號是變數、常量、函式等的名稱。

我們不能指定以數字開頭的識別符號,因為編譯器有七個階段,如下所示。

  • 詞法分析
  • 語法分析
  • 語義分析
  • 中間程式碼生成
  • 程式碼最佳化
  • 程式碼生成
  • 符號表

以上均不支援變數以數字開頭。這是因為在遇到數字後面的字母之前,編譯器無法區分是數字還是識別符號。因此,編譯器必須回溯到詞法分析階段,這是不支援的。編譯器應該能夠在檢視第一個字元後識別標記是識別符號還是字面量。

以下是演示如何在 C 中宣告變數的示例。

示例

#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;
}

上述程式會導致錯誤“整數常量上無效的字尾“s””,因為變數以 5 開頭。如果我們刪除它,程式將正常執行。

演示新程式的示例如下。

示例

 線上演示

#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;
}

輸出

上述程式的輸出如下。

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

更新於:2020年6月26日

2K+ 次瀏覽

啟動您的 職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.