请根据指针和字符串解释该程序的输出?

时间:2016-01-11 05:00:50

标签: c++ string pointers output

namespace

该程序的输出是 前锋> 10 下一个@ 50 最后@ 40 重置为0

请解释这个程序的输出。对解决类似的问题有很大帮助。谢谢提前

1 个答案:

答案 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/