Looking at wikipedia it says:
a -= b;
is the same as
a = a - b;
But when I try this in my C program I get the following error:
"error: redefinition of 'a'".
Here is my program:
#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;
}
I received the following errors:
my_prog.c:6:6: error: redefinition of 'a' int a -= 5; ^ my_prog.c:5:6: note: previous definition is here int a = 10; ^ my_prog.c:6:8: error: invalid '-=' at end of declaration; did you mean >'='? int a -= 5; ^~
I am using clang on Mac.
int a = 10
is a definition.
It combines the declaration of variable name and type (int a
) with its initialization (a = 10
).
The language does not allow multiple definitions of the same variable but it allows changing the value of a variable multiple times using an assignment operator (a = 10
or a = a - b
ora -= b
etc).
Your code should be:
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 10; // declare variable `a` of type `int` and initialize it with 10
a -= 5; // subtract 5 from the value of `a` and store the result in `a`
printf("a has a value of %d\n", a);
return 0;
}