标题:
怎么理解C语言指针自加问题
[打印本页]
作者:
WGL88
时间:
2019-6-14 17:16
标题:
怎么理解C语言指针自加问题
各位师兄:
有个C语言指针疑问请教下,教材代码:
*str++ = ' - ';//表示指针上面添加负号?怎么理解?
02.png
(46.42 KB, 下载次数: 34)
下载附件
2019-6-14 17:00 上传
作者:
suncat0504
时间:
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++;这样的处理?
作者:
cjm82
时间:
2019-6-15 01:19
这种写法是谭浩强的书的通病,写多一行好像要死似的.
第1个,str++ = '-';的意思是, 指针变量当前指向单元被赋值 字符负号后,指针变量往前移动一个单元.
这个语句等价于.
*str = '-';
str++;
第2个, *str++ = buf[i] + '0'; 左边意义跟上面一样,右边buf[i]应该为 0-9的数字 一个数字加 '0'就是转成该数字的ASCII码.
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1