繁体   English   中英

C:给char赋值……期望演员?

[英]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* 但是operatorchar类型。 这就是错误的原因。

如果只想从命令行传递单个字符作为运算符,则:

operator=argv[1][0];

会做。

请注意,最好使用strto*进行转换,因为ato*函数不会检测到错误。

变量operator的类型为charargv[1]的类型为char *

一个是单个字符,另一个是指向字符(即字符串)的指针。

PS。 即使仅使用纯C时它也可以工作,但也应避免使用C ++关键字(例如operator ),因为它将使移植到C ++更加困难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM