* - 符号在C中有什么作用?

时间:2016-12-14 13:41:47

标签: c pointers

我在带有编译器的库中遇到了这个:

register char *bufptr;
register int   neg = val < 0;
register long  uval = val;

*(bufptr = &tempc[BUFLEN - 1]) = 0;

do {*--bufptr = abs(uval % 10) + '0';}  while(uval /= 10);

“* - ”实际上做了什么?我尝试搜索它,但它不包括在我能找到的C引用中,搜索引擎不喜欢“* - ”。

2 个答案:

答案 0 :(得分:5)

*--bufptr相当于*(--bufptr),即先递减bufptr,然后获取它的值。

如果查看precedence table of C operators,那么你会看到递增和递减运算符的优先级高于取消引用运算符。

答案 1 :(得分:1)

它只是一个*和 - 的序列,没有空格;它与*(--bufptr)相同。