C语言的作业,求大佬指教一下

 我来答
czy7812
2018-11-15 · TA获得超过2666个赞
知道小有建树答主
回答量:518
采纳率:88%
帮助的人:181万
展开全部
#include <iostream>                 //控制台操作头文件

int main()                          //主函数
{int a[11],n=6,i;                   //a是数组,n是学号,i是循环变量
 for(i=0;i<11;i++) a[i]=i+1;        //给数组赋初值
 int *p=&a[n];                      //让p指向a[n]
 printf("*p=%d,p=%d\n",*p,p);       //输出*p和p
 printf("*(p+1)=%d,p+1=%d\n",*(p+1),(p+1));//输出*(p+1)和(p+1)
 p++;                               //执行p++ 
 printf("执行p++之后:\n");          //显示执行p++的提示信息
 printf("*p=%d,p=%d\n",*p,p);       //输出*p和p
 printf("*(p-1)=%d,p-1=%d\n",*(p-1),(p-1));//输出*(p-1)和(p-1)
 printf("n");                       //换行
 system("PAUSE");                   //暂停,以看清运行结果
 return 0;}                         //程序结束

答案你按照运行结果的抄就行了。至于为什么?因为*p是a[n]里面的内容,而p是a[n]的地址。

第二个,因为*(p+1)是a[n+1]的内容,而p+1是a[n+1]的地址。

第三个,执行了p++之后,地址向后移动一个,这时的p指向a[n+1],所以结果和刚才的第二个相同。

第四个,因为此时的p指向a[n+1],所以*(p-1)是a[n]的内容,而(p-1)是a[n]的地址,所以和第一个输出一样。

零坐努1
2018-11-14 · TA获得超过375个赞
知道小有建树答主
回答量:415
采纳率:70%
帮助的人:60.1万
展开全部
其实不难,你把你的教科书看看,然后再想想,你就知道答案了。学编程学软件的,就应该自己试着多编写,别芝麻绿豆点小问题都拿出来问别人,丢我们学软件人的脸!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-11-14
知道答主
回答量:83
采纳率:0%
帮助的人:6.3万
展开全部
有那种人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式