SPEED = -SPEED;这句出现了报错,表达式必须是可修改的左值
时间: 2023-09-27 22:06:32 浏览: 151
这个错误通常是因为SPEED被声明为一个常量或者是一个不可修改的变量。在C++中,const修饰的变量是不可修改的,所以如果SPEED被声明为const变量就会出现这个错误。另外,如果SPEED是一个函数返回值,也会导致这个错误。如果想要修改SPEED的值,需要将其声明为可修改的变量,例如使用int类型。
相关问题
c++报错表达式必须是可修改的左值是什么意思
这个错误通常表示你试图修改一个非可修改的值。在 C 语言中,左值是可以出现在赋值操作符左边的表达式,而右值则不能被赋值。可修改的左值指的是可以被修改的表达式,例如变量、数组元素或指向这些元素的指针。如果你尝试修改一个非可修改的左值,例如一个常量或表达式的结果,则会出现报错表达式必须是可修改的左值。要解决这个问题,你需要确保你的表达式是可修改的左值,或者使用另一种方法来完成你的操作。
time_t orderTime = mktime(&tm{ 0,0,0,orderDay,orderMonth - 1,orderYear - 1900 });这段代码tm报错表达式必须为左值或函数指示符
嗯,这段代码的作用是将一个tm结构体表示的日期时间转换为一个time_t类型的时间戳。其中,tm结构体包含了年、月、日、时、分、秒等时间信息,而time_t类型的时间戳表示的是从1970年1月1日00:00:00至当前时间的秒数。
至于编译错误的问题,可能是因为你的编译器不支持使用花括号初始化结构体的方式。你可以试着将这段代码修改为如下形式:
```c++
struct tm orderTime = { 0 };
orderTime.tm_year = orderYear - 1900;
orderTime.tm_mon = orderMonth - 1;
orderTime.tm_mday = orderDay;
orderTime.tm_hour = 0;
orderTime.tm_min = 0;
orderTime.tm_sec = 0;
time_t orderTimestamp = mktime(&orderTime);
```
这样应该就能够正确编译了。
阅读全文
相关推荐














