查找C ++程序的输出(指针)
1.查找以下C ++程序的输出。
#include<iostream>#include<stdlib.h>
using namespace std;
int main(){
float x=5.999;
float *y,*z;
y=&x;
z=y;
cout<<x<<","<<*(&x)<<","<<*y<<","<<*z<<"\n";
return 0;
}
输出结果
5.999,5.999,5.999,5.999
说明
原因是x给出了存储在变量x中的值。*(&x)给出存储在地址&x中的数据值,即x的数据值。由于y指向x(..y =&x),因此* y给出x的值。并且由于z与y具有相同的地址,因此* z还给出x的值,即5.999。
2.查找以下C ++程序的输出。
#include<iostream>using namespace std;
int main(){
int track[]={10,20,30,40},*striker;
striker=track;
track[1]+=30;
cout<<"Striker>"<<*striker<<endl;
*striker-=10;
striker++;
cout<<"[email protected]"<<*striker<<endl;
striker+=2;
cout<<"[email protected]"<<*striker<<endl;
cout<<"Reset To"<<track[0]<<endl;
return 0;
}
输出结果
Striker>10[email protected]
[email protected]
Reset To0
说明
数组磁道包含4个元素{10,20,30,40},指针罢工者持有数组磁道的基地址,即track [0]的地址。
1)* striker保留track [0]的数据值,即10。* striker中的减10将使track [0] = 0。
2)递增指针前锋给出轨道的下一个位置,即1。现在,* striker给出track [1]的数据值。
3)再次通过增加2,罢工者到达阵列磁道的4个地址,即磁道[4]。
4)最后在track [0]上打印该值为0(请参阅步骤1)。
以上是 查找C ++程序的输出(指针) 的全部内容, 来源链接: utcz.com/z/316003.html