namespace
该程序的输出是 前锋> 10 下一个@ 50 最后@ 40 重置为0
请解释这个程序的输出。对解决类似的问题有很大帮助。谢谢提前
答案 0 :(得分:1)
逐行说明:
Striker=Track;
将Striker设置为指向Track的内存,因此Striker [0]将等于Track [0]。
Track[1]+=30;
将Track的第二个索引的值增加30(Track [1] = 50)。
cout<<"Striker >"<<*Striker<<endl;
* Striker与Striker [0]相同,* Stirker + 1与Striker [1]相同,依此类推。此行的输出为“Striker&gt; 10”,因为Striker [0] = Track [0] = 10.
*Striker-=10;
将Striker的第一个索引的值减少10(Striker [0] = 0)。
Striker++;
增加Striker指针,所以现在Striker指向Track + 1(Striker [0] = Track [1],Striker [1] = Track [2],...)。
cout<<"Next @"<<*Striker<<endl;
输出“Next @ 50”,因为Striker [0] = Track [1] = 50。
Striker+=2;
增加Striker 2指数。现在Striker = Track + 3。
cout<<"Last @"<<*Striker<<endl;
输出“Last @ 40”,因为Striker [0]的值等于Track [3]的值。
cout<<"Reset To"<<Track[0]<<endl;
输出“重置为0”,因为当Striker [0]减少时,Track [0]变为0(* Striker- = 10)。
本教程中解释了所有这些指针操作: http://www.cplusplus.com/doc/tutorial/pointers/