int arr[] = {1,9,3,4};
int *myarr;
//Scenario 1
myarr = &arr[0];
cout<<"array at [0] "<< *myarr <<endl;
*myarr++;
cout<<"array at [1] "<< *myarr <<endl;
//Scenario 2
myarr = &arr[0];
cout<<"array at [0] "<< *myarr <<endl;
myarr++;
cout<<"array at [1] "<< *myarr <<endl;
//Scenario 3
myarr = &arr[0];
cout<<"array at [0] "<< *myarr <<endl;
(*myarr)++;
cout<<"array at [1] "<< *myarr <<endl;
我能理解情景3語句。但不是myarr ++和myarr ++是如何工作的。
使用的代碼塊執行上述語句。
輸出如下:
array at [0] 1
array at [1] 9
array at [0] 1
array at [1] 9
array at [0] 1
array at [1] 2
編輯:我已經編輯刪除註釋和補充說明。造成混淆的道歉
倒數第二行不打印2.然後,由於出界限訪問,下一行是未定義的行爲。 –
@ M.M其實沒有。該行傳遞一個指向運算符<<的指針。 –
@DannyuNDos修改註釋 –