2
int* arr1 = {}; //ok: arr1 == NULL
int* arr2 = {1,2,3};//error: scalar object requires one element in initializer
我預計arr1
的初始化會導致相同的錯誤,但它不會。這是爲什麼?爲什麼int * arr = {};法律?
編輯:
謝謝@krzaq的答案。我確實對你所談論的內容感到困惑。
所以下面的語句是所有法律:
int* arr1 = {};
int arr2[] = {1,2,3};
int* arr3 = {arr2};
'INT * ARR3 = {} ARR2'只是初始化指針'arr3'到'第一個元素的ADRESS arr2'。這不是一個數組。 –
是的;我所做的只是使打印'arr2'和'arr3'的地址相同。 –