当前位置首页 > 百科资料> 正文

赋值运算符

2022-07-05 22:46:56 百科资料

基本的赋值运算符是"="。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。

  • 中文名称 赋值运算符
  • 外文名称 Assignment Operator
  • 适用领域 计算机程序设计,科学计算
  • 所属学科 软件工程
  • 表示形式 =

分类

  简单的最常用的=运算符

  一开始可能会以为它是"等于",其实不是的。它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。例如:

  int a, b, c;

  a=3;

  b=4;

  c = ( a + b )*(2*a - b) // 得出14

  php赋值运算符

  基本的赋值运算符是"="。一开始可能会以为它是"等于",其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。

  赋值运算表达式的值也就是所赋的值。也就是说,"$a = 3"的值是 3。这样就可以做一些小技巧: <?php

  $a = ($b = 4) + 5; // $a 成了 9,而 $b 成了 4。

  ?>

  在基本赋值运算符之外,还有适合于所有二元算术和字符串运算符的"组和运算符",这样可以在一个表达式中使用它的值并把表达式的结果赋给它,例如: <?php

  $a = 3;

  $a += 5; // sets $a to 8, as if we had said: $a = $a + 5;

  $b = "Hello ";

  $b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";

  ?>

  注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于在很密集的循环中拷贝一些值例如大数组。自 php 4 起支持引用赋值,用 $var = &$othervar; 语法,但在 php 3 中不可能这样做。引用赋值意味着两个变量都指向同一个数据,没有任何数据的拷贝。有关引用的更多信息见引用的说明。

  复合的赋值运算符

  复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。

  例如:i=i+j;可表示为 i+=j;这里+=是复合赋值运算符。

  同样的共有10种这样的运算符,它们是:

  += 加赋值

  -= 减赋值

  *= 乘赋值

  /= 除赋值

  %= 求余赋值

  &= 按位与赋值

  | = 按位或赋值

  ^= 按位异或赋值

  <<= 左移位赋值

  >>= 右移位赋值

  <> 当右操作数又是一个赋值表达式时,形成多重赋值表达式。例如:

  i=j=0; //结果i、j的值都为0

  构成复合赋值表达式的一般形式

  变量 双目运算符=表达式

  它等效于

  变量=变量 运算符 表达式

  例如:

  a+=5 等价于a=a+5

  x*=y+7 等价于x=x*(y+7)

  r%=p 等价于r=r%p

运用

基本信息

  运算符

  实例

  等价于

  =

  n=25

  +=

  n += 25

  n=n+25

  -=

  n -= 25

  n=n-25

  *=

  n *= 25

  n=n*25

  /=

  n /= 25

  n=n/25

  %=

  n %= 25

  n=n%25

  <<=

  n <<= 25

  n=n<<25

  >>=

  n >>= 25

  n=n>>25

  &=

  n &= OxF2F2

  n=n&OxF2F2

  ^=

  n ^= OxF2F2

  n=n ^ OxF2F2

  |=

  n |= OxF2F2

  n=n | OxF2F2

  1.= 赋值运算符

  变量=表达式 如:a=3;将a的值赋为3

  2./= 除后赋值

  变量/=表达式 如:a/=3;即a=a/3

  3.*= 乘后赋值

  变量*=表达式 如:a*=3;即a=a*3

  4.%= 取余后赋值

  变量%=表达式 如:a%=3;即a=a%3

  5.+= 加后赋值

  变量+=表达式 如:a+=3;即a=a+3

  6.-= 减后赋值

  变量-=表达式 如:a-=3;即a=a-3

  7.<<= 左移后赋值

  变量<<=表达式 左移就是将<<左边的数的二进制各位全部左移若干位,<<右边的数指定移动位数,高位丢弃,低位补0, 移几位就相当于乘以2的几次方

  8.>>= 右移后赋值

  变量>>=表达式 右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。对于有符号数,某些机器将对左边空出的部分用符号位填补(即"算术移位"),而另一些机器则对左边空出的部分用0填补(即"逻辑移位")。注意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的系统移入1。移入0的称为"逻辑移位",即简单移位;移入1的称为"算术移位"。

  9.&= 按位与后赋值

  变量&=表达式 按位与是指:参加运算的两个数据,按二进制位进行"与"运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。按位与其实与逻辑上"与"的运算规则一致。逻辑上的"与",要求运算数全真,结果才为真。若,A=true,B=true,则A∩B=true

  10. ^= 按位异或后赋值

  变量^=表达式 参与运算的两个量按照对应的位进行异或运算,且

  0^0→0, 0^1→1, 1^0→1, 1^1→0

  此外,一个数与0异或仍保持不变,即a^0=a

  一个数与自己异或结果为0,即a^a=0

  11.|= 按位或后赋值

  变量|=表达式 参与运算的两个量按照对应位进行或运算,且0|0→0, 0|1→1, 1|0→1, 1|1→1

注意

  1. 多重赋值表达式不能出现在变量说明中。例如:

  int i=j=0;

  是非法的。

  例:有变量说明

  int a=2,b;

  指出下面表达式运算后a和b的结果。

  b+=b=++a;

  答:a为3,b为6。

  <> 有时将赋值运算与比较运算结合在一起形成嵌入赋值。例如:

  while ((ch=getchar())!='\n');

  这条语句的含义是:等待用户按下回车键后程序向下执行。

  2. x *= y+8等价于x=x*(y+8),不等价于 x = x*y+8。

  同样:z &= y-x等价于z = z & (y-x),而不等价于z = z &y -x。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net