查找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

回到顶部