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'的地址相同。 –