Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangkakan sebelum ';'?

Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangkakan sebelum ';'?

WBOY
WBOYasal
2023-08-25 21:34:4220192semak imbas

如何解决C++语法错误:'expected primary-expression before ';' token'?

Cara menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangkakan sebelum ';' token'

Apabila belajar dan menulis kod C++, kita sering menghadapi pelbagai ralat sintaks. Salah satu ralat biasa ialah 'ungkapan utama yang dijangkakan sebelum ';'. Ralat ini sering berlaku apabila koma bernoktah digunakan untuk menamatkan pernyataan, tetapi struktur pernyataan itu tidak betul. Artikel ini memperincikan punca ralat ini dan menyediakan penyelesaian.

Biasanya terdapat dua sebab untuk ralat ini: pembolehubah tidak ditakrifkan dengan betul atau struktur sintaks yang salah digunakan. Di bawah kami akan menerangkan kedua-dua situasi ini masing-masing dan menyediakan penyelesaian yang sepadan.

Situasi 1: Pembolehubah yang tidak ditakrifkan dengan betul

Apabila kita merujuk pembolehubah yang tidak ditakrifkan dengan betul dalam kod C++, pengkompil akan melaporkan ralat 'ungkapan utama yang dijangkakan sebelum ';'. Ini biasanya berlaku dalam situasi berikut:

  1. Pengisytiharan jenis pembolehubah yang tidak betul: Dalam C++, kita perlu mengisytiharkan jenis pembolehubah sebelum menggunakannya. Jika kita terlupa untuk menentukan jenis pembolehubah sebelum menggunakannya, ia akan mengakibatkan ralat penyusunan. Contohnya:
x = 5;

Dalam kod di atas, jenis pembolehubah x tidak ditentukan dan pengkompil akan melaporkan ralat.

Penyelesaian: Isytiharkan jenis pembolehubah dengan betul. Contohnya:

int x = 5;
  1. Ralat ejaan nama pembolehubah: Jika kami menggunakan nama pembolehubah yang tidak diisytiharkan (salah ejaan) dalam kod, pengkompil tidak akan mengenali pembolehubah tersebut.

Penyelesaian: Semak sama ada nama pembolehubah dalam kod dieja dengan betul dan betulkan ralat.

int num = 10;
cout << nums << endl; // 正确的变量名是num,不是nums
  1. Masalah skop pembolehubah: Apabila pembolehubah yang kita rujuk melebihi skopnya, pengkompil akan melaporkan ralat. Contohnya:
void func() {
    int x = 5;
}

int main() {
    cout << x << endl; // x在函数func的作用域内,无法在main函数中引用
    return 0;
}

Penyelesaian: Letakkan pengisytiharan berubah dalam skop yang sesuai.

Senario 2: Menggunakan struktur sintaks yang salah

Apabila kami menggunakan struktur sintaks yang salah dalam kod C++, pengkompil akan melaporkan ralat 'ekspresi primer yang dijangkakan sebelum ';'. Ini biasanya berlaku dalam situasi berikut:

  1. Ungkapan salah: Apabila kita menggunakan ungkapan yang salah dalam penyataan if, for, while, dsb., pengkompil akan melaporkan ralat.

Penyelesaian: Semak sama ada ungkapan dalam kod adalah betul dan betulkan ralat.

  1. Akses ahli yang salah: Apabila kami menggunakan operator titik untuk mengakses objek yang tidak ditentukan atau menggunakan pengakses '->' untuk mengakses pembolehubah bukan penunjuk, pengkompil akan melaporkan ralat.

Penyelesaian: Semak sama ada operasi akses ahli dalam kod adalah betul dan betulkan ralat.

Berikut ialah contoh kod ringkas yang menunjukkan cara menyelesaikan ralat sintaks C++ 'ekspresi primer yang dijangkakan sebelum ';' token:

#include <iostream>
using namespace std;

int main() {
    int num = 10;
    cout << num << endl;

    return 0;
}

Dalam kod di atas, kami telah mengisytiharkan jenis nombor pembolehubah dengan betul dan menggunakan pembolehubah Dimulakan sebelum. Oleh itu, pengkompil tidak akan mengeluarkan ralat.

Ringkasan:

Apabila menulis kod C++, kita sering menghadapi pelbagai ralat sintaks. Apabila ralat 'ungkapan utama yang dijangka sebelum ';' berlaku, kita perlu menyemak kod dengan teliti untuk mengetahui dan menyelesaikan punca ralat. Artikel ini menyediakan dua keadaan ralat biasa dan penyelesaian yang sepadan, dengan harapan dapat membantu pembaca menyelesaikan ralat ini. Pada masa yang sama, adalah disyorkan untuk mengekalkan gaya pengekodan dan spesifikasi yang baik semasa pengekodan, yang boleh mengurangkan berlakunya kesilapan tatabahasa dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangkakan sebelum ';'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn