Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.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 如果可以';t重新定义变量?_C_Redefinition_Compound Assignment - Fatal编程技术网

C 如果可以';t重新定义变量?

C 如果可以';t重新定义变量?,c,redefinition,compound-assignment,C,Redefinition,Compound Assignment,看着它说: 与 a = a - b; 但当我在C程序中尝试此操作时,我得到以下错误: 这是我的节目: #include <stdio.h> int main(int argc, char *argv[]) { int a = 10; int a -= 5; printf("a has a value of %d\n", a); return 0; } 我正在Mac上使用clang。对a的定义如下: int a; a =

看着它说:

a = a - b;
但当我在C程序中尝试此操作时,我得到以下错误:

这是我的节目:

#include <stdio.h>

int main(int argc, char *argv[])
{
    int a = 10;
    int a -= 5;

    printf("a has a value of %d\n", a);

    return 0;
}

我正在Mac上使用clang。

a
的定义如下:

int a;
a = 10;
a
的初始化如下所示:

int a;
a = 10;
您可以在同一表达式中执行这两项操作:

int a = 10;
现在定义并初始化了
a

如果您执行以下操作:

int a -= 5;
在前面的表达式之后,您正在重新定义
a
,因此出现了错误

您只需要:

a -= 5;

int a=10
是一个定义

它将变量名称和类型的声明(
inta
)与其初始化(
a=10
)结合起来

该语言不允许对同一变量进行多个定义,但允许使用赋值运算符多次更改变量的值(
a=10
a=a-b

a-=b
等)

您的代码应该是:

#包括
int main(int argc,char*argv[])
{
int a=10;//声明'int'类型的变量'a',并用10初始化它
a-=5;//从'a'的值中减去5,并将结果存储在'a'中`
printf(“a的值为%d\n”,a);
返回0;
}

请用分号或缺少的分号回答您的问题。就上下文而言,我添加了我的代码,我认为标题非常清楚。
int a…
是一个定义。但你已经定义了它。您需要一个表达式。删除
int
。这个标题对于R程序员来说很清楚,因为在R中赋值是一个定义。在C语言中,赋值语句更改现有变量的值。它不会创建新变量,也不能用于更改现有变量的类型。您可能是对的。这十年我没有写C代码,我把它们弄混了一点:-(
a -= 5;