=!

c語(yǔ)言中i=!a的意思是將a取非的值賦值給i。
!作為單目運(yùn)算符的意思是取非,如!真=假,!假=真。C語(yǔ)言中一般情況下0表示假,非0表示真。
另外值得注意的是=,==和!=的區(qū)別,=是賦值運(yùn)算符,即把=右側(cè)表達(dá)式的值賦值給左側(cè)的變量;==是邏輯等于運(yùn)算符,當(dāng)兩側(cè)的表達(dá)式的值相等時(shí)返回真,否則返回假;!=是邏輯不等于運(yùn)算符,當(dāng)兩則表達(dá)式的值不相等時(shí)返回真,否則返回假。

ps:

單目運(yùn)算符

單目運(yùn)算符是運(yùn)算所需變量為一個(gè)的運(yùn)算符,又叫一元運(yùn)算符。
邏輯非運(yùn)算符【!】、按位取反運(yùn)算符【~】、自增自減運(yùn)算符【++, --】、負(fù)號(hào)運(yùn)算符【-】、類型轉(zhuǎn)換運(yùn)算符【(類型)】、指針運(yùn)算符和取地址運(yùn)算符【和&】、長(zhǎng)度運(yùn)算符【sizeof】
運(yùn)算所需變量為兩個(gè)的運(yùn)算符叫做雙目運(yùn)算符,例如+,-,
,/,%,<,>,>=,<=,==,!=,<<,>>,&,^,|,&&,||,=
運(yùn)算所需變量為三個(gè)的運(yùn)算符叫做三目運(yùn)算符,只有條件表達(dá)式【?:】

衍生:
單目,一個(gè)運(yùn)算數(shù) i++, i--, !a, ~a
雙目,兩個(gè)運(yùn)算數(shù) a+b a-b a*b
三目,三個(gè)運(yùn)算數(shù) bc=a?b:c; (if(a) bc =b;else bc =c;)
看一下運(yùn)算符優(yōu)先級(jí)表就知道了,會(huì)列出所有運(yùn)算符,并標(biāo)明單目,雙目,三目

單(一)、二、三 是指參與運(yùn)算的對(duì)象(變量)的數(shù)量,例如:
++、--都是單目操作符,因?yàn)樗鼈冎灰笠粋€(gè)變量。
+、*、/都是雙目操作符,因?yàn)樗鼈兪菍?duì)兩個(gè)變量進(jìn)行運(yùn)算。
? : (條件操作符)三目運(yùn)算符。

賦值運(yùn)算符:
分類編輯

基本的賦值運(yùn)算符是“=”。他的優(yōu)先級(jí)別低于其他的運(yùn)算符,所以對(duì)該運(yùn)算符往往最后讀取。

簡(jiǎn)單的最常用的=運(yùn)算符
一開(kāi)始可能會(huì)以為它是“等于”,其實(shí)不是的。它的作用是將一個(gè)表達(dá)式的值賦給一個(gè)左值。一個(gè)表達(dá)式或者是一個(gè)左值,或者是一個(gè)右值。所謂左值是指一個(gè)能用于賦值運(yùn)算左邊的表達(dá)式。左值必須能夠被修改,不能是常量。我們現(xiàn)在是用變量作左值,以后還可以看到,指針和引用也可以作左值。例如:
int a, b, c;
a=3;
b=4;
c = ( a + b )(2a - b) // 得出14
php賦值運(yùn)算符
基本的賦值運(yùn)算符是“=”。一開(kāi)始可能會(huì)以為它是“等于”,其實(shí)不是的。它實(shí)際上意味著把右邊表達(dá)式的值賦給左邊的運(yùn)算數(shù)。
賦值運(yùn)算表達(dá)式的值也就是所賦的值。也就是說(shuō),“$a = 3”的值是 3。這樣就可以做一些小技巧: <?php
$a = ($b = 4) + 5; // $a 現(xiàn)在成了 9,而 $b 成了 4。
?>
在基本賦值運(yùn)算符之外,還有適合于所有二元算術(shù)和字符串運(yùn)算符的“組和運(yùn)算符”,這樣可以在一個(gè)表達(dá)式中使用它的值并把表達(dá)式的結(jié)果賦給它,例如: <?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!";
?>
注意賦值運(yùn)算將原變量的值拷貝到新變量中(傳值賦值),所以改變其中一個(gè)并不影響另一個(gè)。這也適合于在很密集的循環(huán)中拷貝一些值例如大數(shù)組。自 php 4 起支持引用賦值,用 $var = &$othervar; 語(yǔ)法,但在 php 3 中不可能這樣做。引用賦值意味著兩個(gè)變量都指向同一個(gè)數(shù)據(jù),沒(méi)有任何數(shù)據(jù)的拷貝。有關(guān)引用的更多信息見(jiàn)引用的說(shuō)明。
復(fù)合的賦值運(yùn)算符
復(fù)合的賦值運(yùn)算符,又稱為帶有運(yùn)算的賦值運(yùn)算符,也叫賦值縮寫。
例如:i=i+j;可表示為 i+=j;這里+=是復(fù)合賦值運(yùn)算符。
同樣的共有10種這樣的運(yùn)算符,它們是:
+= 加賦值
-= 減賦值
*= 乘賦值
/= 除賦值
%= 求余賦值
&= 按位與賦值
| = 按位或賦值
^= 按位異或賦值
<<= 左移位賦值

= 右移位賦值
<> 當(dāng)右操作數(shù)又是一個(gè)賦值表達(dá)式時(shí),形成多重賦值表達(dá)式。例如:
i=j=0; //結(jié)果i、j的值都為0
構(gòu)成復(fù)合賦值表達(dá)式的一般形式
變量 雙目運(yùn)算符=表達(dá)式
它等效于
變量=變量 運(yùn)算符 表達(dá)式
例如:
a+=5 等價(jià)于a=a+5
x=y+7 等價(jià)于x=x(y+7)
r%=p 等價(jià)于r=r%p
賦值運(yùn)算符的運(yùn)用編輯
基本信息
運(yùn)算符
實(shí)例
等價(jià)于
=
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.= 賦值運(yùn)算符
變量=表達(dá)式 如:a=3;將a的值賦為3
2./= 除后賦值
變量/=表達(dá)式 如:a/=3;即a=a/3
3.
= 乘后賦值
變量=表達(dá)式 如:a=3;即a=a*3
4.%= 取模后賦值
變量%=表達(dá)式 如:a%=3;即a=a%3
5.+= 加后賦值
變量+=表達(dá)式 如:a+=3;即a=a+3

6.-= 減后賦值
變量-=表達(dá)式 如:a-=3;即a=a-3
7.<<= 左移后賦值
變量<<=表達(dá)式 左移就是將<<左邊的數(shù)的二進(jìn)制各位全部左移若干位,<<右邊的數(shù)指定移動(dòng)位數(shù),高位丟棄,低位補(bǔ)0, 移幾位就相當(dāng)于乘以2的幾次方
8.>>= 右移后賦值
變量>>=表達(dá)式 右移運(yùn)算符是用來(lái)將一個(gè)數(shù)的各二進(jìn)制位右移若干位,移動(dòng)的位數(shù)由右操作數(shù)指定(右操作數(shù)必須是非負(fù)值),移到右端的低位被舍棄,對(duì)于無(wú)符號(hào)數(shù),高位補(bǔ)0。對(duì)于有符號(hào)數(shù),某些機(jī)器將對(duì)左邊空出的部分用符號(hào)位填補(bǔ)(即“算術(shù)移位”),而另一些機(jī)器則對(duì)左邊空出的部分用0填補(bǔ)(即“邏輯移位”)。注意:對(duì)無(wú)符號(hào)數(shù),右移時(shí)左邊高位移入0;對(duì)于有符號(hào)的值,如果原來(lái)符號(hào)位為0(該數(shù)為正),則左邊也是移入0。如果符號(hào)位原來(lái)為1(即負(fù)數(shù)),則左邊移入0還是1,要取決于所用的計(jì)算機(jī)系統(tǒng)。有的系統(tǒng)移入0,有的系統(tǒng)移入1。移入0的稱為“邏輯移位”,即簡(jiǎn)單移位;移入1的稱為“算術(shù)移位”。
9.&= 按位與后賦值
變量&=表達(dá)式 按位與是指:參加運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)制位進(jìn)行“與”運(yùn)算。如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1;否則為0。這里的1可以理解為邏輯中的true,0可以理解為邏輯中的false。按位與其實(shí)與邏輯上“與”的運(yùn)算規(guī)則一致。邏輯上的“與”,要求運(yùn)算數(shù)全真,結(jié)果才為真。若,A=true,B=true,則A∩B=true

  1. ^= 按位異或后賦值
    變量^=表達(dá)式 參與運(yùn)算的兩個(gè)量按照對(duì)應(yīng)的位進(jìn)行異或運(yùn)算,且
    0^0→0, 0^1→1, 1^0→1, 1^1→0
    此外,一個(gè)數(shù)與0異或仍保持不變,即a^0=a
    一個(gè)數(shù)與自己異或結(jié)果為0,即a^a=0
    11.|= 按位或后賦值
    變量|=表達(dá)式 參與運(yùn)算的兩個(gè)量按照對(duì)應(yīng)位進(jìn)行或運(yùn)算,且0|0→0, 0|1→1, 1|0→1, 1|1→1
    注意
  2. 多重賦值表達(dá)式不能出現(xiàn)在變量說(shuō)明中。例如:
    int i=j=0;
    是非法的。
    例:有變量說(shuō)明
    int a=2,b;
    指出下面表達(dá)式運(yùn)算后a和b的結(jié)果。
    b+=b=++a;
    答:a為3,b為6。
    <> 有時(shí)將賦值運(yùn)算與比較運(yùn)算結(jié)合在一起形成嵌入賦值。例如:
    while ((ch=getchar())!='\n');
    這條語(yǔ)句的含義是:等待用戶按下回車鍵后程序向下執(zhí)行。
  3. x = y+8等價(jià)于x=x(y+8),不等價(jià)于 x = x*y+8。
    同樣:z &= y-x等價(jià)于z = z & (y-x),而不等價(jià)于z = z &y -x。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《裕語(yǔ)言》速成開(kāi)發(fā)手冊(cè)3.0 官方用戶交流:iApp開(kāi)發(fā)交流(1) 239547050iApp開(kāi)發(fā)交流(2) 10...
    葉染柒丶閱讀 28,774評(píng)論 5 20
  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評(píng)論 3 44
  • 陳陣和楊克打算去掏狼崽。大概是在草原呆久了,知青對(duì)狼的認(rèn)識(shí)也越發(fā)的深起來(lái),膽子越來(lái)越大,想要做一些像蒙古人做的事,...
    煎魚(yú)炒肉閱讀 1,005評(píng)論 0 0
  • 最大領(lǐng)導(dǎo)力學(xué)習(xí)課程 取勝是內(nèi)心的事情 約翰.麥克斯韋爾博士 取勝的第一守則:不要打擊自己...
    一個(gè)不安的訪客閱讀 900評(píng)論 0 0

友情鏈接更多精彩內(nèi)容