简单的最常用的=运算符
一开始可能会以为它是“等于”,其实不是的。它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。例如:
inta,b,c;
a=3;
b=4;
c=(a+b)*(2*a-b)//得出14
php赋值运算符
基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。
赋值运算表达式的值也就是所赋的值。也就是说,“$a=3”的值是3。这样就可以做一些小技巧:
$a=($b=4)+5;//$a成了9,而$b成了4。
?>
在基本赋值运算符之外,还有适合于所有二元算术和字符串运算符的“组合运算符”,这样可以在一个表达式中使用它的值并把表达式的结果赋给它,例如:
$a=3;
$a+=5;//sets$ato8,asifwehadsaid:$a=$a+5;
$b="Hello";
$b.="There!";//sets$bto"HelloThere!",justlike$b=$b."There!";
?>
注意赋值运算将原变量的值拷贝到新变量中(传送值赋值),所以改变其中一个并不影响另一个。这也适合于在很密集的循环中拷贝一些数据例如大数据。自php4起支持引用赋值,用$var=&$othervar;语法,但在php3中不可能这样做。引用赋值意味着两个变量都指向同一个数据,没有任何数据的拷贝。有关引用的更多信息见引用的说明。
复合的赋值运算符
复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。
例如: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 |
展开表格
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.多重赋值表达式不能出现在变量说明中。例如:
inti=j=0;
是非法的。
例:有变量说明
inta=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。
Copyright 2023 fuwu029.com赣ICP备2022008914号-4