c语言中的赋值运算符 = 及有关的知识点:左值、可修改的左值,右值

1.在c语言中,=并不意味着相等,
例1,如:bmw = 2002
解读:语句不读作bmw等于2002,而读作“把2002赋给变量bmw";

例2,如i= i + 1;
解读:找出变量i的值,把该值加1,然后把新值赋给i;

2.赋值运算符左侧必须引用一个存储位置(对应一个地址)。最简单的方法是使用变量名;

3.由赋值运算符= 构成的简单语句叫赋值表达式语句,其目的是把值存储到内存位置上;

4. a、对象指的是实际的数据存储;使用变量名是标识对象的一种方法;
    b、用于存储值的数据存储区域(一段内存)称为数据对象;
    c、在学习名称时,被称为”项“(如,赋值运算符左侧的项)的就是运算对象。运算对象是运算符操作的对象;

5.左值: 
1)左值是c语言的术语,用于标识特定数据对象(一段内存)的名称或表达式,是用于标识或定位存储位置的标签;

2)早期的c语言,提到左值,意味着:
  ①它指定一个对象,所以引用内存中的地址;
  ②它可用于运算符的左侧;


        但是,c的标准中新增了const 限定符。用const创建的变量不可改变,可以叫做不可修改的左值,故②它可用于运算符的左侧,已经不适用;
        因此,c标准新增了一个术语:可修改的左值,用于标识可修改的对象,可以放在赋值运算符的左侧或右侧。
        所以赋值运算符的左侧应该是可修改的左值;(也可以说赋值运算符的左侧运算对象应该是可修改的左值);

  6.右值:本身不是左值,且能赋值给可修改的左值的量。右值可以是常量、变量或其它可求值的表达式;

例子:
int ex;
int why;
int zee;
const int     two = 2;
why = 12;
zee = why;
ex = two * (why + zee);

解读:
①ex、why和zee都是可修改的左值;two是不可改变的左值;
②const int two = 2;//表示初始化而不是赋值,因此不违反规定;
③12是右值,因为不能引用某指定内存位置;
④表达式(why + zee)是右值,该表达式不能表示特定内存位置,而且也不能给它赋值。只是程序计算的一个临时值,计算完毕就会被丢弃;
        
   7.赋值运算符 = 支持三重赋值。
例子:int i,j,k;
          i = j = k =1;
三重赋值的顺序是从右到左;

(内容来<<C Primer  Plus (第6版)中文版>>)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值