# 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]
我是初学者。请告诉我我做错了什么。
最佳答案
这不是char
和const char
的区别,而是char[]
和char
的区别>.
strcmp
需要两个字符数组。
op
是 (10) 个字符的数组。好:这就是 strcmp
所期望的。
p
是单个字符。不好:strcmp
需要一个字符数组,而 p
不是任何类型的数组,而是单个字符。
您可以将 p
从单个字符“+”更改为字符数组“+”,或者仅比较 op
的第 0 个字符,如评论中所建议以上。
关于c++ - char和const char的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881312/