| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 430 人关注过本帖
标题:这道题结果为什么是这样
只看楼主 加入收藏
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
结帖率:92.45%
收藏
已结贴  问题点数:20 回复次数:4 
这道题结果为什么是这样
#include <stdio.h>
#include <malloc.h>

int main()
{
    int a[]={10,11,12};
    int *p=&a[0];
    p++;
    *p+=1;
    printf("%d,%d,%d\n",a[0],a[1],a[2]);
    return 0;
}
搜索更多相关主题的帖子: include return 
2012-04-11 10:40
Wikyo_hoho
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:31
专家分:188
注 册:2012-3-12
收藏
得分:6 
*p=&a[0] 就相当于*p=a;  p++之后p就指向了a[1],所以*p+=1就相当于a[1]+=1
2012-04-11 11:22
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:6 
p++后,就是p指向a[1],然后你*p+=1,为a[1]加1后重新赋给a[1],所以a[1]=12

一阴一阳之谓道!
2012-04-11 13:19
姚杰
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:169
专家分:477
注 册:2010-6-1
收藏
得分:0 
回去好好看看指针与数组

持之以恒,别留遗憾,加油
2012-04-11 14:00
jl857733132
Rank: 2
等 级:论坛游民
帖 子:4
专家分:22
注 册:2012-4-9
收藏
得分:8 
*p=&a[0]相当于把a[0]的地址给了*p,此时的*p指向a[0];
p++下一次调用*p时指针自增1,*p将指向a[1];
*p+=1相当于a[1]=a[1]+1,a[1]的值应该是12;
printf("%d,%d,%d\n",a[0],a[1],a[2]);输出的结果10,12,12

2012-04-11 16:36
快速回复:这道题结果为什么是这样
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031685 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved