=!

c语言中i=!a的意思是将a取非的值赋值给i。
!作为单目运算符的意思是取非,如!真=假,!假=真。C语言中一般情况下0表示假,非0表示真。
另外值得注意的是=,==和!=的区别,=是赋值运算符,即把=右侧表达式的值赋值给左侧的变量;==是逻辑等于运算符,当两侧的表达式的值相等时返回真,否则返回假;!=是逻辑不等于运算符,当两则表达式的值不相等时返回真,否则返回假。

ps:

单目运算符

单目运算符是运算所需变量为一个的运算符,又叫一元运算符。
逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++, --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【和&】、长度运算符【sizeof】
运算所需变量为两个的运算符叫做双目运算符,例如+,-,
,/,%,<,>,>=,<=,==,!=,<<,>>,&,^,|,&&,||,=
运算所需变量为三个的运算符叫做三目运算符,只有条件表达式【?:】

衍生:
单目,一个运算数 i++, i--, !a, ~a
双目,两个运算数 a+b a-b a*b
三目,三个运算数 bc=a?b:c; (if(a) bc =b;else bc =c;)
看一下运算符优先级表就知道了,会列出所有运算符,并标明单目,双目,三目

单(一)、二、三 是指参与运算的对象(变量)的数量,例如:
++、--都是单目操作符,因为它们只要求一个变量。
+、*、/都是双目操作符,因为它们是对两个变量进行运算。
? : (条件操作符)三目运算符。

赋值运算符:
分类编辑

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

简单的最常用的=运算符
一开始可能会以为它是“等于”,其实不是的。它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们现在是用变量作左值,以后还可以看到,指针和引用也可以作左值。例如:
int a, b, c;
a=3;
b=4;
c = ( a + b )(2a - 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

  1. ^= 按位异或后赋值
    变量^=表达式 参与运算的两个量按照对应的位进行异或运算,且
    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
    注意
  2. 多重赋值表达式不能出现在变量说明中。例如:
    int i=j=0;
    是非法的。
    例:有变量说明
    int a=2,b;
    指出下面表达式运算后a和b的结果。
    b+=b=++a;
    答:a为3,b为6。
    <> 有时将赋值运算与比较运算结合在一起形成嵌入赋值。例如:
    while ((ch=getchar())!='\n');
    这条语句的含义是:等待用户按下回车键后程序向下执行。
  3. x = y+8等价于x=x(y+8),不等价于 x = x*y+8。
    同样:z &= y-x等价于z = z & (y-x),而不等价于z = z &y -x。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容

  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 26,010评论 5 19
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,424评论 3 44
  • 陈阵和杨克打算去掏狼崽。大概是在草原呆久了,知青对狼的认识也越发的深起来,胆子越来越大,想要做一些像蒙古人做的事,...
    煎鱼炒肉阅读 844评论 0 0
  • 最大领导力学习课程 取胜是内心的事情 约翰.麦克斯韦尔博士 取胜的第一守则:不要打击自己...
    一个不安的访客阅读 785评论 0 0