c++ - char和const char的区别

标签 c++

 # include <iostream>
# include <string.h>
using namespace std;
int main()
{
    int a=10;
    int b=20;
    char op[10];
    const char p='+';
    cout<<"enter the operation"<<endl;
    cin>>op;
    if(!strcmp(op,p)==0)
{
        cout<<a+b;
}
    return 0;
}

编译结果

12 17 C:\Users\DELL\Documents\cac.cpp [错误] 从 'char' 到 'const char*' 的无效转换 [-fpermissive]

我是初学者。请告诉我我做错了什么。

最佳答案

这不是charconst char的区别,而是char[]char的区别>.

strcmp 需要两个字符数组。

op 是 (10) 个字符的数组。好:这就是 strcmp 所期望的。

p 是单个字符。不好:strcmp 需要一个字符数组,而 p 不是任何类型的数组,而是单个字符。

您可以将 p 从单个字符“+”更改为字符数组“+”,或者仅比较 op 的第 0 个字符,如评论中所建议以上。

关于c++ - char和const char的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881312/

相关文章:

c++ - OpenGL 无缘无故地裁剪一个对象

c++ - Qt的QBuffer线程安全吗?

c++ - 为什么很多cache.h文件中使用 '#define alloc_nr(x) (((x)+16)*3/2)'宏?

c++ - 'stringstream' 参数顺序问题

时间:2018-02-08 标签:c++cin>>byte strangebehavior

c++ - 在给定命名声明的宏内使用变量声明的类型

c++ - 更新 C++ 类库

c++ - 从 SDL 库的函数返回的指针

c++ - 在 pimpl 类中初始化默认值的最佳位置?

c++ - Boost-Python 原始指针构造函数