unmodifiable lvalue什么意思?

作者&投稿:锐天 (若有异议请与网页底部的电邮联系)

unmodifiable lvalue:不可修改的左值。

1、 lvalue:是"left variable value"的简写,意思是:左变量值。在编程时,若操作代码执行了修改只读的变量(不可修改的左值lvalue),则会提示以下错误: “keilc error C183: unmodifiable lvalue”。

2、原因分析:

char code* Info[]={"tt","yy","xx"}
code 定义的变量值是写入rom的,是不能够修改的。在编程时应注意这个问题。

3、解决方法:
若code 定义的变量值被修改了,则需要改为char* Info[]={"tt","yy","xx"}就可以恢复正常了。

扩展资料

计算机语言

B语言的左值和右值是形式文法中的元素。而ISO C/C++的左值和右值独立于语法,是纯粹语义上的概念。此外,ISO C在脚注中约定右值就是值,但ISO C++中右值和值是两个明确独立的概念。

ISO C允许不是左值也不作为右值(即具有值)的表达式——函数指示符(function designator) ——也就是单独的函数名。它通过转换得到函数指针值。

ISO C++03规定表达式必须是左值或右值之一。而在ISO C++11中,左值性被正式地扩充为更复杂的值类别(value category) :左值是返左值(glvalue, "generic lvalue") 的一类,后者和纯右值(prvalue, "pure rvalue") 相对。

纯右值相当于之前版本的右值,此外还有消亡值(xvalue, "eXpired value") 。函数名作为表达式在C++中是左值。

ISO C/C++中,左值可以进一步分为可以修改的左值(modifiable lvalue) 和不可修改的左值。只有可修改的左值才能作为赋值表达式的左操作数。不可修改的左值的一类例子是具有const类型的左值。

参考资料来源:百度百科-左值



~