C++ 为什么atoi函数可以';是否将常量字符*转换为int?

C++ 为什么atoi函数可以';是否将常量字符*转换为int?,c++,atoi,C++,Atoi,为什么在此代码中,atoi()函数不能正常工作,为什么编译器会给出此错误: 正在初始化“int-atoi(const-char*)”的参数1 我的代码如下: #include <iostream.h> #include <stdlib.h> int main() { int a; char b; cin >> b; a = atoi(b); cout << "\na"; return 0; }

为什么在此代码中,
atoi()
函数不能正常工作,为什么编译器会给出此错误:

正在初始化“int-atoi(const-char*)”的参数1

我的代码如下:

#include <iostream.h>
#include <stdlib.h>
int main()
{
    int a;
    char b;
    cin >> b;
    a = atoi(b);
    cout << "\na";  
    return 0;
}
#包括
#包括
int main()
{
INTA;
字符b;
cin>>b;
a=原子(b);

CUT< P> <代码> B<代码>代码> char < /C> >但在 AOII-()/<代码>必须通过<代码> char *<代码>或 const char */COD> >因为C++是严格类型检查语言,因此您得到了

正如您在这里看到的,它应该是这样的

Atoi接收到一个指向char的指针,而不是像您那样的char。 这是有意义的,因为通过这种方式,您可以将atoi应用于一个超过1位的“数字”(以字符串表示),例如atoi(“100”)

否则,如果它是字符,则只能转换“0”、“1”、“2”…“9”

编辑:尝试以下示例:

#include <iostream>
#include <stdlib.h>
int main()
{
    int a;
    char b[10];


    cin >> b;
    a = atoi(b);

    cout<<"\n"<<a; 
    return 0;
}
#包括
#包括
int main()
{
INTA;
charb[10];
cin>>b;
a=原子(b);
库特
#include <iostream>
#include <stdlib.h>
int main()
{
    int a;
    char b[10];


    cin >> b;
    a = atoi(b);

    cout<<"\n"<<a; 
    return 0;
}