此代码显示此错误Invalid operands to binary expression ('int*' and 'int*')
int *a = 5;
int *b = 3;
int *c = a*b;
我如何将它们相乘,为什么这是一个错误?
答案 0 :(得分:3)
您正在使用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。
答案 1 :(得分:2)
请删除asterisk
符号,因为int
是原始数据类型而非对象。您可以将asterisk
符号放在对象而不是基本数据类型中。
星号符号是C语言的指针符号。
int a = 5;
int b = 3;
int c = a*b;
答案 2 :(得分:2)
这是C(基本类型)整数类型,因此您无法使用指针声明。
请找到以下代码:
int a = 5;
int b = 3;
int c =(a * b);
由于