這是我的程序,用於將二進制數轉換爲十進制值。下標值,數組或指針也不向量
#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