c语言左值与右值的概念是什么


这篇文章主要讲解了“c语言左值与右值的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言左值与右值的概念是什么”吧!左值与右值问题阐述赋值表达式中可以分为左值(lvaule)和右值(rvaule),那么什么是左值和右值?数组名做为左右值时又具有怎样的意义?lvalue估计来源于left value。在赋值语句中lvalue = rvalue;位置处于左边。就是可以修改的值。rvalue估计来源于right value。处于赋值语句右边,是只读的不可修改的值。左值是指可以被赋值的表达式,也就是赋值符号左侧的表达式。由此可以知道,右值就是指出现在赋值符右侧的表达式。每一个赋值语句都有一个左值和一个右值。(1)左值必须是变量。左值必须是内存中一个可存储的变量,而不能是一个常量或者表达式。例如,下面是正确的左值int i;int *p;i=5;*p=3;i是一个整型变量,在内存中有一个对应的存储位置。因此,语句i=5中,i可以作为一个左值。在语句*p=3中,*p表示p指向的内存区域,因此,*p是一个左值。而下面几个例子就不是左值。#define PRICE 10int i,j;PRICE=20;(i+j)=10;上面的代码中, PRICE是一个常量值,其值不能改变,因为常量不表示内存中可存储的位置;而(i+j)是一个表达式,也不能表示内存中可存储的一个位置。所以这两个赋值语句的左值都是不正确的(2)右值可以是常量或者表达式,例如#define PRICE 10int i,j;int *p:i=5;j=i+5*p=PRICE;(3)赋值语句必须有一个左值和一个右值。一条赋值语句必须有一个左值和一个右值,否则将无法通过编译。数组名作为左右值的意义:当数组名作为左值时,是错误的。编译器会认为数组名作为左值代表的意思是数组的首元素的首地址,但是这个 香港云主机地址开始的一块内存是一个整体,只能访问数组中某个元素,而无法访问整个数组,所以可以把a[3]当左值,而不能把a当左值。数组名代表数组的首地址,所以数组名作为右值时将数组的首地址赋给赋值符左侧的变量。综上,数组名不可以作为左值,而数组中的元素是可以作为左值的。因为数组中的每个元素也可以被看作是一个变量,其在内存中有对应的存储位置。感谢各位的阅读,以上就是“c语言左值与右值的概念是什么”的内容了,经过本文的学习后,相信大家对c语言左值与右值的概念是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: win7修改任务栏颜色的方法是什么

win7修改任务栏颜色的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。win7修改任务栏颜色的步骤:首先使用鼠标右键点击桌面上空白处,打开个性化。在个性化中点击窗口颜色。接着会弹出一个窗…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/13 17:33
下一篇 07/13 17:33

相关推荐