社区
C语言
帖子详情
*(p++)
dikong
2008-10-14 05:05:52
main()
{
int x[]={1,2,3,4,5,6},*p=&x[2];
printf("%d\n",*(p++));
}
我用VC编译的输出结果是3,为什么?
而且(*p)++结果也是3;
...全文
231
19
打赏
收藏
*(p++)
main() { int x[]={1,2,3,4,5,6},*p=&x[2]; printf("%d\n",*(p++)); } 我用VC编译的输出结果是3,为什么? 而且(*p)++结果也是3;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leiminlovesoft
2008-10-15
打赏
举报
回复
int x[]={1,2,3,4,5,6},*p=&x[2];
要测试这种最好不要用那种 1,2,3之类的,这样不好区分,8, 20, 72, 7, 9 这种就可以,不至于,当P自增之后,有可能与元素值一样
你再看看++运算符的运算。。
leiminlovesoft
2008-10-15
打赏
举报
回复
这个是运算符优先级的问题,* 虽然没有 ++ 优先级高 ,
但是在这里,你用的是
后++
所以,
表达式的值虽然加了1,但是变量的值却还是原来的值,
如果是
前++
就不一样的
canican
2008-10-15
打赏
举报
回复
*(p++) 先*p取值,printf语句结束后地址p+1
(*p)++ 先*p取值,printf语句结束后*p即x[2]+1
yingdishu2
2008-10-15
打赏
举报
回复
int x[]={1,2,3,4,5,6},*p=&x[2];
printf("%d\n",*(p++));
p指向X[2],X[2]里面的值为3
你输出的就是3
输出后++指向X[3]
JYYCOM
2008-10-15
打赏
举报
回复
我建议楼主看看《C和指针》里面关于数组和指针的东西,肯定茅塞顿开
malu_1982
2008-10-14
打赏
举报
回复
你想得到什么结果
hyyuanqiang
2008-10-14
打赏
举报
回复
re
HotHat
2008-10-14
打赏
举报
回复
回去好好看一下,++这个运算符的用法。
xdxiaodao
2008-10-14
打赏
举报
回复
本身p指向的就是3
是加了地址后取值,但是++地址要到下一次使用才有反应
换成++(*p),试一下,输出应该是4。
jzd8000
2008-10-14
打赏
举报
回复
简而言之:*(p++)
可分解为两句代码,
*p
然后
p++
waydream
2008-10-14
打赏
举报
回复
p=&x[2] //这里p指向的就是3
*(p++) //这据执行完p指向的是4,但p ++这个运算符函数返回值还是指向3的地址,所以取值*还是3
//如果是*(++p) 这个++运算符函数返回值就是指向4的地址了
至于(*p)++ 道理是一样的 只是++返回的数不表示地址了而直接就是个数值3。
dic_walter
2008-10-14
打赏
举报
回复
main()
{
int x[]={1,2,3,4,5,6},*p=&x[2];
printf("%d\n",*(p++));
}
=================================
*p = &x[2];//表示P指向x[2]的地址
printf("%d\n",*(p++));//打印*p后,p++
printf("%d\n",*(p)++);//打印*p后,(*p)++
所以打印出来,都是一样的啦
webtop1
2008-10-14
打赏
举报
回复
本身p指向的就是3
是加了地址后取值,但是
++地址要到下一次使用才有反应
hmsuccess
2008-10-14
打赏
举报
回复
*(p++)不是一个表达式,所以,先先取*p的值,再将p加1,
askingbo
2008-10-14
打赏
举报
回复
很简单啊,
假设a=2;
a++ 也是等于2的啊
++a 才等于3的-
就呆在云上
2008-10-14
打赏
举报
回复
本身p指向的就是3
是加了地址后取值,但是++地址要到下一次使用才有反应
因此,后面的就更加简单了
要不是试试:
++*(p)
键盘比鼠标好用
2008-10-14
打赏
举报
回复
换*(++p),++(*p)看看咯
键盘比鼠标好用
2008-10-14
打赏
举报
回复
呵呵,因为都是后加1
phz1985
2008-10-14
打赏
举报
回复
printf("%d\n",*(p++)); //printf("%d\n", *p); p++;
(*p)++;//*p; p++;
HTML+CSS+JavaScript
p>段落标签06 <hr/>水平分隔线标签07 <br/>换行标签08 文本的格式化标签09 特殊字符标签10 <img>图像标签14 相对路径与绝对路径11 章节练习-《清平乐》12 章节练习-《李清照简介》13 章节练习-...
[全新]Java版Mysql+Jdbc+Druid精细化实战教程
每一个程序员都必须掌握MySQL 根据《中国开发者调查报告》显示:超过83%的开发者都在使用MySQL数据库。 免费开源Mysql集群后的性能完全可以媲美收费的Oracle数据库,所有Mysql已经成为最主流的关系型...
大型微服务+前后端分离之MyBatis-Plus教程
愿景 我们的愿景是成为 MyBatis 超好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 ...
动态代理和静态代理(案例-自定义连接池/C3P0/Druid)
本课程主要讲解数据库连接池的使用和动态代理使用以及原理。数据库连接池技术是实际开发中必不可少的技术,在提高数据库访问效率上有明显的作用和意义,掌握数据库连接池的使用是后端开发人员必备的技能之一...
2019年人工智能热门案例精讲之P图美化照片
GitHub案例讲解,由人工智能数据科学家讲解。本课程从项目实际应用的角度出发,让 初学者学会从0到1搭建人工智能项目,了解模型是如何训练并生成数据的。以及对循环神经网络和卷积神经网络核心技术的讲解,并且案例...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章