Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah `sizeof` Mengendalikan Huruf Rentetan dalam C/C?

Bagaimanakah `sizeof` Mengendalikan Huruf Rentetan dalam C/C?

Susan Sarandon
Susan Sarandonasal
2024-12-11 10:00:16508semak imbas

How Does `sizeof` Handle String Literals in C/C  ?

Saiz Huruf Rentetan Dijelaskan

Coretan kod yang disediakan menyerlahkan gelagat operator saiz dengan literal rentetan yang berbeza. Mari kita teliti jawapan kepada soalan yang dibangkitkan.

  1. Mengapa sizeof mengira panjang rentetan literal?

The sizeof operator mengira saiz dalam bait yang diduduki oleh ungkapan yang diberikan. Untuk literal rentetan, ia akan mengembalikan bilangan aksara, termasuk aksara penamat ' ', yang menandakan penghujung rentetan. Dalam kes ini, "f" mempunyai dua aksara ('f' dan ' '), jadi sizeof("f") mengembalikan 2.

  1. Adakah rentetan literal mempunyai jenis yang berbeza apabila diberikan kepada sizeof?

Tidak, rentetan literal tidak mempunyai jenis yang berbeza apabila diberikan kepada sizeof. Ia mengekalkan jenisnya sebagai susunan aksara tetap. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa apabila rentetan literal dihantar ke fungsi atau digunakan dalam ungkapan yang menjangkakan penunjuk, ia secara automatik mereput menjadi penunjuk aksara. Tetapi apabila diserahkan kepada sizeof, ia mengekalkan jenis asalnya sebagai tatasusunan aksara.

Dalam contoh ini:

  • foo ialah penunjuk tetap kepada aksara malar, jadi sizeof(foo ) mengembalikan saiz penunjuk, yang biasanya 4 bait pada sistem 32-bit.
  • bar ialah susunan aksara tetap, jadi sizeof(bar) mengembalikan saiz tatasusunan, iaitu 2 bait (satu untuk aksara 'b' dan satu untuk aksara ' ').

Atas ialah kandungan terperinci Bagaimanakah `sizeof` Mengendalikan Huruf Rentetan dalam C/C?. 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