Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如果你给一个有两个加号的变量赋值,这意味着什么?_C - Fatal编程技术网

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