首页文章正文

数组可以作为左值吗,左值表达式

数组取地址要加&吗 2023-12-25 20:07 936 墨鱼
数组取地址要加&吗

数组可以作为左值吗,左值表达式

对于数组而言,数组名表示的是数组的首地址,即数组中的第一个元素的地址,此地址是不可改变的,所以不能为左值,故编译出错。但是可以对其作为右值进行运算处理,前面讲数组名时讲到过数组名不能作为左值(准确的说,数组名不是左值),这节课就来延伸一下「左值」和「右值」的内容,这部分内容也涉及到内存,通过内存模型也很容易理解这部分的规则。

左值被定义为可被赋值的表达式。那么,数组是可被赋值的表达式吗?不是,因为数组是由若干独立的数组元素组成的,这些元素不能作为一个整体被赋值。下述语句是非法语句告诉编译器,p和p都是常量,都不能作为左值,即“p="和“p=”两操作均不成立,这种指针限制和“”运算符,在实际中很少用。六、泛型算法应用于普通数组1、数

惯于。它在最后一行显示错误:需要左值作为赋值的左操作数"。有什么方法可以使用(暂时缺少一个更好的术语)"临时增量指针"吗?还是我只需要存储原始指针并通过递增指针来遍历C++的三目运算符返回的是变量本身,既可作为右值,又可作为左值使用(如果有常量值则不能作为左值)。当三目运算符的可能返回都是变量时,返回的是变量引用,当有常

因为寄存器随时可以被外设硬件修改。当声明指向设备寄存器的指针时一定要用volatile,它会告诉编译器不要对a不能作为左值!这个错误几乎每一个学生都犯过。编译器会认为数组名作为左值代表的意思是a的首元素的首地址,但是这个地址开始的一块内存是一个总体,我们只能访问

但是,数组名和指针还是有区别的:指针是一个变量,所以可以当做左值赋值;而数组名不是变量,不是左值,不可以改变。如果把数组名当做左值赋值,会引发lvalue requi我们可以用一个指针和一个循环来遍历一个数组,看例子:例三:int array[20]={0}; int *ptr=array; for(i=0;i<20;i++) { (*ptr)++; ptr++; } 这个例子

后台-插件-广告管理-内容页尾部广告(手机)

标签: 左值表达式

发表评论

评论列表

灯蓝加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号