Rumah > pembangunan bahagian belakang > C++ > Mengapa Menggunakan Tanda Kurung dalam Pengisytiharan Pembolehubah C?

Mengapa Menggunakan Tanda Kurung dalam Pengisytiharan Pembolehubah C?

Barbara Streisand
Lepaskan: 2024-12-20 16:30:14
asal
995 orang telah melayarinya

Why Use Parentheses in C   Variable Declarations?

Kurungan dalam Perisytiharan Pembolehubah: Mendedahkan Kepentingannya

Semasa bekerja dengan C , pembangun mungkin terjumpa sintaks yang agak membingungkan yang membenarkan pembolehubah diisytiharkan dengan kepungan kurungan. Pengisytiharan seperti int (x) = 0; atau malah int (((x))) = 0; boleh membuatkan seseorang tertanya-tanya tentang tujuan dan kepraktisan mereka.

Jawapan kepada enigma ini terletak pada konsep pengelompokan. Pertimbangkan contoh mengisytiharkan penunjuk kepada fungsi jenis f(int). Pendekatan standard, int *f(int);, ditafsirkan sebagai fungsi mengembalikan int*. Walau bagaimanapun, untuk menentukan penuding dengan betul kepada fungsi itu, kurungan mesti diperkenalkan untuk membentuk int (*f)(int);.

Prinsip yang sama ini juga digunakan untuk pengisytiharan tatasusunan. Pengisytiharan int *x[5]; menandakan tatasusunan lima int*, manakala int (*x)[5]; menunjuk kepada tatasusunan lima int.

Dalam coretan kod yang disediakan:

struct B { };
struct C
{
  C (B *) {}
  void f () {};
};

int main()
{
  B *y;
  C (y);  // Oops, compiler error!
}
Salin selepas log masuk

Niatnya adalah untuk membina objek jenis C yang akan melakukan operasi berguna dalam pemusnahnya. Walau bagaimanapun, pengkompil menyalah tafsir C (y); sebagai pengisytiharan pembolehubah y jenis C, mengakibatkan ralat takrifan semula. Di sinilah kumpulan kurungan memainkan peranan. Dengan melampirkan panggilan pembina sebagai C (y) dan bukannya C(y), tafsiran pengkompil diperbetulkan, membenarkan kod untuk menyusun seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa Menggunakan Tanda Kurung dalam Pengisytiharan Pembolehubah C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan