找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1508|回复: 2
打印 上一主题 下一主题
收起左侧

怎么理解C语言指针自加问题

[复制链接]
跳转到指定楼层
楼主
各位师兄:

有个C语言指针疑问请教下,教材代码:

*str++ = ' - ';//表示指针上面添加负号?怎么理解?

02.png (46.42 KB, 下载次数: 33)

02.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:517466 发表于 2019-6-15 00:45 | 只看该作者
我的理解是,*str++='-',是先对str指向的单元放一个'-'字符,然后调整指针指向下一个单元。后面的转换中,buf是按照个位,十位,百位...的顺序放入字符的。所以后面的循环处理时,用i--调整处理顺序为从数据高位向各位的顺序,按照这个顺序依次放入字符串指针str所指向的单元,同时指针+1,指向下一个存储单元。
例如,对-123,在str指针指向的单元里,按照处理顺序,像放入'-',把100放进buf时,buf中装入的是{'3','2','1'},后面倒序把buf装入str指向的单元。依次变成:{'-'}  -->  {'-','1'}  --> {'-', '1', '2'}  --> {'-', '1', '2', '3'}。

*str++='-'; 是不是就等于*str='-'; str++;这样的处理?
回复

使用道具 举报

板凳
ID:388197 发表于 2019-6-15 01:19 | 只看该作者
这种写法是谭浩强的书的通病,写多一行好像要死似的.
第1个,str++ = '-';的意思是,   指针变量当前指向单元被赋值 字符负号后,指针变量往前移动一个单元.
这个语句等价于.
*str = '-';
str++;

第2个, *str++ = buf[i] + '0';  左边意义跟上面一样,右边buf[i]应该为 0-9的数字  一个数字加 '0'就是转成该数字的ASCII码.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表