此代码显示此错误Invalid operands to binary expression ('int*' and 'int*')
目标C乘2 INT *
int *a = 5;
int *b = 3;
int *c = a*b;
我怎样才能将它们相乘,而为什么这是一个错误?
此代码显示此错误Invalid operands to binary expression ('int*' and 'int*')
目标C乘2 INT *
int *a = 5;
int *b = 3;
int *c = a*b;
我怎样才能将它们相乘,而为什么这是一个错误?
您正在使用int
值初始化int*
。乘值,并将其写入到另一个指针,你应该调用存储在地址的值与(*a)
这里是你想要做什么的示例代码:
int *a = malloc(sizeof(int));
int *b = malloc(sizeof(int));
int *c = malloc(sizeof(int));
*a = 2;
*b = 3;
*c = (*a)*(*b);
printf("%d %d %d", *a,*b,*c);
free(a);
free(b);
free(c);
它打印2 3 6如预期。
请删除asterisk
符号,因为int
是原始数据类型不是对象。您可以将asterisk
符号与对象不是原始数据类型。
星号符号是来自C语言的指针符号。
int a = 5;
int b = 3;
int c = a*b;
我会喜欢,但在我使用的代码中我不能更改int的声明 – D4rWiNS
您必须删除星号符号,否则您将收到编译时错误。 –
这是C(原始类型)整数类型,所以你不能用指针声明。
请找到以下码:
INT一个= 5;
int b = 3;
int c =(a * b);
感谢
int a;删除星号符号,因为int是原始数据类型而不是对象。 –