请根据指针和字符串解释该程序的输出
Please explain the output of this program based on pointers and strings?
#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/
相关文章:
- 如何从Windows应用程序输出到标准?
- 在由Sublime文本3编译后在cmd上显示Java程序输出
- 如何从 Win32 C++ 应用程序输出到父控制台窗口?
- 而循环:简单的除法程序输出零,不明白为什么
- Qt creator 4.11,在应用程序输出面板中创建一个链接
- 使用复制构造函数的程序输出错误
- 为什么Qt Creator的应用程序输出不能从spdlog记录器打印
- 为什么在 Direct X 11 中没有我的程序输出?
- 我怎样才能阻止我的程序输出时间,它使我的程序难以阅读
- 程序输出奇怪的字符
- 程序输出"nan"
- 为什么我的C++程序输出不同的数字来将米转换为英尺?
- 3D 纹理大小会影响程序输出,而不会引发错误
- C++,程序输出无效输入,但继续通过循环
- 如何连接C++和Excel(从C++程序输出到Excel电子表格)
- 为什么我的C 程序输出乱码代码
- QT小部件应用程序输出到控制台
- 混淆了具有虚拟继承的程序输出
- 为什么我的C++程序输出这个
- 为什么我的程序输出不断变化?EAX寄存器不断更改值