C 如果你给一个有两个加号的变量赋值,这意味着什么?
这意味着什么:C 如果你给一个有两个加号的变量赋值,这意味着什么?,c,C,这意味着什么: *variablename++ = ','; 我见过像I++这样的东西,我想这就是 但是,如果您像上面(第一个)那样给它赋值,这意味着什么呢?增量后运算符++比间接运算符*具有更高的优先级。此外,后增量“返回”变量的前一个值(在本例中,是增量之前指针的前一个值)。因此,上述代码与: *variablename = ','; variablename = variablename + 1; 这是在循环中分配数组元素(使用指针)的常用方法 在不知道确切类型的情况下,它相当
*variablename++ = ',';
我见过像I++
这样的东西,我想这就是
但是,如果您像上面(第一个)那样给它赋值,这意味着什么呢?增量后运算符
++
比间接运算符*
具有更高的优先级。此外,后增量“返回”变量的前一个值(在本例中,是增量之前指针的前一个值)。因此,上述代码与:
*variablename = ',';
variablename = variablename + 1;
这是在循环中分配数组元素(使用指针)的常用方法 在不知道确切类型的情况下,它相当于:
{
type *old_pointer = variablename; // Substitute type for the actual type
variablename = variablename + 1;
*old_pointer = ',';
}
这里重要的一点是变量必须是指针。不能使用非指针类型,如
int
。这是因为后缀增量运算符返回一个右值(有关详细信息,请参见示例),而右值不能分配给
但是如果右值是一个指针,那么它可以被取消引用成为一个左值,然后可以分配给它。@Someprogrammerdude Yeap,当然。我已经编辑了答案。描述仍然是错误的…离题问题:有没有办法将其分配给命令和空间?多个字符不能使用它。为什么?@Simpleperson带有指针(或数组)
variablename
表达式*variablename
与variablename[0]
完全相等。这是一个单一的元素。如果variablename
是字符串,则*variablename
是单个字符。@Simpleperson您只能指定由目标定义的数据类型。如果指针指向char
,则只能分配1个char
。