c++中 int a[5]={1,2,3,4,5},i;int *p=a;p+=2;for(i=0;i==0;i++) cout<<*(p+2); 怎么去读程序?
4个回答
展开全部
int a[5]={1,2,3,4,5},i //定义int数组a -> 5个连续的int存储空间首地址,按顺序值为1,2,3,4,5
;int *p=a;//定义int指针,并初始化值为a,指向数组首地址
p+=2;//指针按int类型方式向下偏移2位,指向从a[0]->a[2],值从1->3
for(i=0;i==0;i++) //for循环i初值为0(循环入口),循环判断为i==0(每次循环前),i++为循环增量(每次循环后)
cout<<*(p+2); //向cout流输出*(p+2)的值,默认为std终端,p+2同上,指向a[4],*(p+2)为指向地址值为5。该循环一次后中断
;int *p=a;//定义int指针,并初始化值为a,指向数组首地址
p+=2;//指针按int类型方式向下偏移2位,指向从a[0]->a[2],值从1->3
for(i=0;i==0;i++) //for循环i初值为0(循环入口),循环判断为i==0(每次循环前),i++为循环增量(每次循环后)
cout<<*(p+2); //向cout流输出*(p+2)的值,默认为std终端,p+2同上,指向a[4],*(p+2)为指向地址值为5。该循环一次后中断
展开全部
你这个程序不全吧?没有说明程序要解决的问题啊?先在数组中赋初值,用指针p指向a[0],指针自加2,即p指向a[2],接下来有一个循环,i赋初值0,然后i恒等于0?程序有问题不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义了一个a数组,p指针指向数组a的首地址,p+=2使P指向数组a下标为2中的内容,for循环依次取出p指针指向的内容,而循环的条件是i==0,说只运行一次,*(p+2)是取出p+2地址中的内容,则输出5,a的下标为4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-05-26
展开全部
int *p=a; //定义一个int型指针,并将数组a的首地址(准确地应该是元素a[0]的地址)赋值给p
p+=2;//指针p向后移动两个单位长度(即2个int字节长度),这时指向a[2]的地址
for循环实际就执行一次
cout<<*(p+2); //输出p+2指向的int型数值,即a[4]的值
p+=2;//指针p向后移动两个单位长度(即2个int字节长度),这时指向a[2]的地址
for循环实际就执行一次
cout<<*(p+2); //输出p+2指向的int型数值,即a[4]的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询