后增量运算符
这意味着什么:
*variablename++ = ',';
我见过像i++
这样的东西,我想是i = i + 1
。
但是,如果你像上面(第一个(那样给它分配一个东西,这意味着什么?
这是在循环中分配数组元素(通过使用指针(的常用方法。
在不知道确切类型的情况下,它相当于:
{
type *old_pointer = variablename; // Substitute type for the actual type
variablename = variablename + 1;
*old_pointer = ',';
}
这里的重要部分是变量必须是指针。不能使用像int
这样的非指针类型。这是因为后缀增量运算符返回右值(例如,有关详细信息,请参阅此值类别参考(,并且右值不能分配给。
但是,如果右值是一个指针,那么它可以被取消引用,成为一个左值,然后可以被分配给.
++
的优先级高于间接运算符*
。此外,后增量";返回";变量的前一个值(在我们的例子中,是指针在增量之前的前一值(。所以上面的代码与相同
*variablename = ',';
variablename = variablename + 1;