[英]C: assignment to char… expects cast?
使用
int main(int argc, char *argv[])
{
double number1, number2;
char operator;
number1 =atof (argv[0]);
operator =argv[1]; // line 29
number2 =atof (argv[2]);
编译器抱怨说
29警告:赋值使指针从整数变为整数而不进行强制转换[默认启用]
argv [1]是指向char的指针,您不能将其分配给char。 要么将运算符转换为char *,要么尝试将运算符= *(argv [1]);
operator =argv[1]; // line 29
在这里, argv[1]
的类型为char*
。 但是operator
是char
类型。 这就是错误的原因。
如果只想从命令行传递单个字符作为运算符,则:
operator=argv[1][0];
会做。
请注意,最好使用strto*
进行转换,因为ato*
函数不会检测到错误。
变量operator
的类型为char
而argv[1]
的类型为char *
。
一个是单个字符,另一个是指向字符(即字符串)的指针。
PS。 即使仅使用纯C时它也可以工作,但也应避免使用C ++关键字(例如operator
),因为它将使移植到C ++更加困难。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.