有关C++的简单问题.高手帮忙解答一下.

来源:百度知道 编辑:UC知道 时间:2024/06/21 06:43:38
1.程序的运行结果为_____
#include<iostream.h>
void main()
{
int a[]={1,2,3,4,5}
int*p=a
*(p+3)*=3;
cout<<"*p="<<*p<<endl;
cout<<"*(p+3)="<<p[3]<<endl;
}

2.
程序的运行结果为_______
#include<iostream.h>
void main()
{
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4];
for(int i=0;i<4;i++)
p[i]=&a[i*3];
cout<<p[3][2]<<endl;
}

3.以下程序的运行结果为_______
#include<iostream.h>
void main()
{
int a[5]={1,2,3,4,5},i,*p[5],**pp;
for(i=0;i<5;i++)
p[i]=a+i;
for(pp=p;pp<p+5;pp++)
cout<<**pp<<"";
cout<<endl;
}

希望写详细点.谢谢了
能把步骤写下来吗?结果有的.关键是步骤
int a[]={1,2,3,4,5} 后面有;写掉了

1题输出1和12 *p=1我想你明白,*(p+3)*=3表示*(p+3)再乘以3的结果是4*3=12
2题*p[4]是指针数组,p[4]中存放的都是指向int型的指针,p[i]=&a[i*3]; 是把地址赋给它,所以p[3][2]是12
3题同2

第一个程序有错误。
第二个输出12
第三个12345

第一个你少打了两个分号,
p指向数组的第一个元素
p+3指向数组的第四个元素
输出应该是1和12