為什麼在 C 語言中數組是不可賦值的
在 C 語言中,數組不能直接賦值給其他數組。這種行為可能看起來很奇怪,但這是由於語言繼承自 C。
錯誤訊息「Error C2106: '=' : left operand must be l-value」表示左操作數(在此case、values) 必須是左值,它是可以賦值的可修改物件。但是,在 C 中,陣列不被視為左值。
不可分配數組的原因
C 數組不可分配的原因如下:
陣列一旦宣告就有固定的大小。將一個數組分配給另一個數組需要更改數組的大小,這在 C 中是不允許的。
替代解決方案
作為最後的手段,您可以使用循環在數組之間手動複製元素。
#include <algorithm> // Original arrays int numbers[5] = {1, 2, 3}; int values[5] = {}; // Copying elements using std::copy std::copy(numbers, numbers + 5, values);範例:
#include <array> // Modern arrays std::array<int, 5> numbers = {1, 2, 3}; std::array<int, 5> values = {}; // Assignment values = numbers;或者,使用 std::array:
以上是為什麼我不能在 C 中直接對數組進行賦值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!