本篇文章给大家谈谈c语言左值右值,以及c++左值和右值的区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
左值和右值的区别
变量做左值和右值的区别:如 x = 2;这里x为整形变量,这里作为左值,代表的是一块内存单元,表示的是地址。再如x = y;现在看变量做右值情况,y做右值,这里呢就不在表示地址,而是代表该内存单元上的值!然后赋给x。
按字面意思,通俗地说。以赋值符号 = 为界,= 左边的就是左值,= 右边就是右值。 比如:(1) int b = 3;(2) int a = b;第(2)行代码,a为左值,b为右值。
左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则为左值,否则为右值。
通俗的讲,左值就是能够出现在赋值符号左面的东西,而右值就是那些可以出现在赋值符号右面的东西了。举个很简单的例子:a=b+100;那么这里a就是左值,b+25就是一个右值。
在C语言中,P为一个指针变量,那*P出现在赋值号右边和左边的定义分别是什...
1、c语言中*p表示此指针指向的内存地址中存放的内容。*p一般是一个和指针类型一致的变量或者常量。*p是让程序去那个地址取出数据。
2、p为指针,地址是未知的,如果直接赋值 p=a;这样编译可以通过,但是会产生警告,p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。
3、*p的的值为5,*p1的值为1,*p2的值为3 表达式右边的值就出来了,就是3乘以1,得数是3 把3赋给左边,那么*p就变成3了。
4、int *p;这里,定义的是一个指向int变量的指针。它同时也可以用来指向一个int数组。因为在C中,数组的表示是通过元素的首地址来表示的。作为指针,它和int变量指针没区别,编译器无法区分。
5、*p = &n是取变量n的地址,然后赋值给指针p所指向的内存空间。
6、指针可以理解为内存空间的代号,*p 为该空间中所存变量。
C语言---是=右边赋值给左边还是左边赋值给右边???,看图,帮我解释一下...
1、C语言中的“=”是赋值,而不是一般意义下的等于。换句话说,这个符号在C语言里面的功能是把右边的常量、变量或者表达式的值交给左边的变量。
2、赋值号左边必然是变量, a+7=c+b是错误的。等号是赋值运算,这就意味着等号左边必须是被赋值的变量,显然a+7是表达式,而不是变量。赋值语句是由赋值表达式再加上分号构成的表达式语句。
3、B、按照c语言的赋值运算规则。=是从右向左。那么执行b=0这句时,b就成了一个未声明的变量。所以是错的!正确的做法应该是分开定义。
c语言左值右值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++左值和右值的区别、c语言左值右值的别忘了在本站进行查找喔。