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修改注释 –