这是我的程序,用于将二进制数转换为十进制值。下标值,数组或指针也不向量
#include <stdio.h>
#include <string.h>
#include <math.h>
void con(){
unsigned long long int dec = 0, bin;
int i;
printf ("\n Binary : ");
scanf("%lld",&bin);
for (i = strlen(bin) - 1; i <= 0; --i){ // Warning in here
dec = dec + (bin[i] * pow (2, i)); // Error in here
}
printf(" Decimal : %lld",dec);
con();
}
int main(){
con();
return 0;
}
当我编译代码时,出现这个错误,“下标值既不是数组也不是指针也不是矢量”。而且这个警告也是,“传递strlen的参数1使得整形指针没有投射”。
为什么我得到这些,我该如何解决它们?
'bin'是'无符号长长int',而不是一个指针或数组... – StoryTeller
@StoryTeller所以我应该把它作为一个数组? –
如果您打算将其作为一个数组使用,则应将其声明为数组。 – StoryTeller