首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言編譯錯誤「expected identifier or '(' before '=' token」原因與修正

     編輯:程式設計綜合問答

初學者編寫 C 程序打印字母圖案時,第 8 行報錯:expected identifier or '(' before '=' token。本文分析語法錯誤並給出正確代碼。

錯誤代碼

#include <stdio.h>
int main() {
    int i, j;
    char ch;
    for (i = 1; i < 5; i++) {
        char = 'A' + i - 1;  // 第 8 行:語法錯誤
        for (j = 1; j < 2 * i - 1; j++)
            printf("%c\n", ch);
    }
    return 0;
}

錯誤原因

char 是關鍵字(類型聲明),不能作為變量名賦值。此處意圖是給變量 ch 賦值,應寫為 ch = 'A' + i - 1;。

修正代碼

#include <stdio.h>
int main() {
    int i, j;
    char ch;
    for (i = 1; i < 5; i++) {
        ch = 'A' + i - 1;          // 修正:給 ch 賦值
        for (j = 1; j < 2 * i - 1; j++)
            printf("%c\n", ch);
    }
    return 0;
}

運行輸出

B
B
C
C
C
C
D
D
D
D
D
D

邏輯說明:外層循環 i=1..4,對應字母 B、C、D、E(但 i<5 只到 D);內層循環打印 2*i-1 次:i=1 打印 1 次 B,i=2 打印 3 次 C,i=3 打印 5 次 D,i=4 打印 7 次 E(但代碼中 i<5,i=4 時字母為 'A'+3='D',打印 7 次 D)。

避坑指南

  • 不要用關鍵字(char, int, for 等)作為變量名。
  • 賦值語句左邊必須是已聲明的變量名,而非類型關鍵字。
  • 編譯器提示 expected identifier 通常意味著該位置期望一個標識符(變量名、函數名),卻遇到關鍵字或符號。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved