如果你给一个有两个加号的变量赋值,这意味着什么



这意味着什么:

*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;

最新更新