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

Please explain the output of this program based on pointers and strings?

本文关键字:程序 输出 解释 字符串 指针      更新时间:2023-10-16
#include<iostream.h>
#include<conio.h>
void main()
{
int Track[]={10,20,30,40},*Striker;
Striker=Track;
Track[1]+=30;
cout<<"Striker >"<<*Striker<<endl;
*Striker-=10;
Striker++;
cout<<"Next @"<<*Striker<<endl;
Striker+=2;
cout<<"Last @"<<*Striker<<endl;
cout<<"Reset To"<<Track[0]<<endl;
getch();
}

程序的输出为前锋> 10下一页 @ 50尾页 @ 40重置为 0

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

逐行说明:

Striker=Track;
将 Striker

设置为指向 Track 的内存,因此 Striker[0] 等于 Track[0]。

Track[1]+=30;

将 Track 的第二个索引的值增加 30(Track[1] = 50(。

cout<<"Striker >"<<*Striker<<endl;
*前锋与前锋[

0]相同,*斯特克+1与前锋[1]相同,依此类推。此行的输出是"前锋> 10",因为前锋[0] = 轨道[0] = 10。

*Striker-=10;

将前锋的第一个索引的值减少 10(前锋 [0] = 0(。

Striker++;
增加前锋指针,所以现在前锋指向轨道+1(前锋[0]=轨迹[1],

前锋[1]=轨迹[2],...(。

cout<<"Next @"<<*Striker<<endl;

输出"下一个@50",因为前锋[0]=轨道[1]=50。

Striker+=2;

增加前锋 2 指数。现在前锋=轨道+3。

cout<<"Last @"<<*Striker<<endl;

输出"Last @40",因为前锋 [0] 的值等于 Track[3] 的值。

cout<<"Reset To"<<Track[0]<<endl;

输出"重置为0",因为当前锋[0]减少时,轨道[0]变为0(*前锋-=10(。

本教程介绍了所有这些指针操作:http://www.cplusplus.com/doc/tutorial/pointers/