Rumah >pembangunan bahagian belakang >C++ >Mengapakah saya tidak boleh menetapkan tatasusunan secara langsung dalam C?
Mengapa Tatasusunan Tidak Boleh Ditugaskan dalam C
Dalam C, tatasusunan tidak boleh diberikan kepada tatasusunan lain secara langsung. Tingkah laku ini mungkin kelihatan pelik, tetapi ia disebabkan oleh warisan bahasa daripada C.
Mesej ralat "Ralat C2106: '=' : operan kiri mestilah nilai-l" menunjukkan bahawa operan kiri (dalam ini case, values) mestilah nilai-l, iaitu objek yang boleh diubah suai yang boleh ditugaskan kepada. Walau bagaimanapun, tatasusunan tidak dianggap sebagai nilai-l dalam C .
Sebab Tatasusunan Tidak Boleh Ditugaskan
Tatasusunan C tidak boleh ditetapkan atas beberapa sebab:
Penyelesaian Alternatif
Untuk bekerja dengan tatasusunan dalam C , terdapat beberapa penyelesaian alternatif:
Contoh:
#include <algorithm> // Original arrays int numbers[5] = {1, 2, 3}; int values[5] = {}; // Copying elements using std::copy std::copy(numbers, numbers + 5, values);
Sebagai alternatif, menggunakan std::array:
#include <array> // Modern arrays std::array<int, 5> numbers = {1, 2, 3}; std::array<int, 5> values = {}; // Assignment values = numbers;
Atas ialah kandungan terperinci Mengapakah saya tidak boleh menetapkan tatasusunan secara langsung dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!