c語(yǔ)言小括號(hào)的用法有哪些用處
C語(yǔ)言的小括號(hào)里面表示一條語(yǔ)句,返回值是多條語(yǔ)句中最靠右的語(yǔ)句的返回值,下面學(xué)習(xí)啦小編就為大家介紹c語(yǔ)言小括號(hào)的用法,歡迎大家閱讀。
c語(yǔ)言小括號(hào)的用法:?jiǎn)涡±ㄌ?hào) ()
?、倜罱M。括號(hào)中的命令將會(huì)新開一個(gè)子shell順序執(zhí)行,所以括號(hào)中的變量不能夠被腳本余下的部分使用。括號(hào)中多個(gè)命令之間用分號(hào)隔開,最后一個(gè)命令可以沒有分號(hào),各命令和括號(hào)之間不必有空格。
?、诿钐鎿Q。等同于`cmd`,shell掃描一遍命令行,發(fā)現(xiàn)了$(cmd)結(jié)構(gòu),便將$(cmd)中的cmd執(zhí)行一次,得到其標(biāo)準(zhǔn)輸出,再將此輸出放到原來命令。有些shell不支持,如tcsh。
?、塾糜诔跏蓟瘮?shù)組。如:array=(a b c d)
c語(yǔ)言小括號(hào)的用法:雙小括號(hào) (( ))
?、僬麛?shù)擴(kuò)展。這種擴(kuò)展計(jì)算是整數(shù)型的計(jì)算,不支持浮點(diǎn)型。((exp))結(jié)構(gòu)擴(kuò)展并計(jì)算一個(gè)算術(shù)表達(dá)式的值,如果表達(dá)式的結(jié)果為0,那么返回的退出狀態(tài)碼為1,或者 是"假",而一個(gè)非零值的表達(dá)式所返回的退出狀態(tài)碼將為0,或者是"true"。若是邏輯判斷,表達(dá)式exp為真則為1,假則為0。
?、谥灰ㄌ?hào)中的運(yùn)算符、表達(dá)式符合C語(yǔ)言運(yùn)算規(guī)則,都可用在$((exp))中,甚至是三目運(yùn)算符。作不同進(jìn)位(如二進(jìn)制、八進(jìn)制、十六進(jìn)制)運(yùn)算時(shí),輸出結(jié)果全都自動(dòng)轉(zhuǎn)化成了十進(jìn)制。如:echo $((16#5f)) 結(jié)果為95 (16進(jìn)位轉(zhuǎn)十進(jìn)制)
③單純用 (( )) 也可重定義變量值,比如 a=5; ((a++)) 可將 $a 重定義為6
④常用于算術(shù)運(yùn)算比較,雙括號(hào)中的變量可以不使用$符號(hào)前綴。括號(hào)內(nèi)支持多個(gè)表達(dá)式用逗號(hào)分開。 只要括號(hào)中的表達(dá)式符合C語(yǔ)言運(yùn)算規(guī)則,比如可以直接使用for((i=0;i<5;i++)), 如果不使用雙括號(hào), 則為for i in `seq 0 4`或者for i in {0..4}。再如可以直接使用if (($i<5)), 如果不使用雙括號(hào), 則為if [ $i -lt 5 ]。
下面的程序給多維數(shù)組初始化,注意初始化時(shí)花括號(hào)和小括號(hào)的區(qū)別
[cpp] view plain
#include
intmain()
{
inta[2][2]={(1,2),(3,4),};//如果把小括號(hào)換成花括號(hào),結(jié)果就不一樣了,小括號(hào)(1,2)返回2(3,4)返回4,另外兩個(gè)元素默認(rèn)是0
inti,j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%d",a[i][j]);
printf("\n");
}
int*p=a[0];
printf("%d\n",p[0]);
return0;
}
/*
運(yùn)行結(jié)果:
24
00
2
*/
c語(yǔ)言大括號(hào)的用法
大括號(hào)的作用是把內(nèi)部的多個(gè)語(yǔ)句綁在一起,當(dāng)成一個(gè)語(yǔ)句。
在c中大括號(hào)的作用是將很多語(yǔ)句復(fù)合為一個(gè)語(yǔ)句塊,在這個(gè)大括號(hào)括起來的語(yǔ)句塊中可以定義變量,該變量?jī)?nèi)存出了該語(yǔ)句塊就會(huì)被釋放。
char a[10] = {“abcde”};
這個(gè)表達(dá)式正確。我讓他繼續(xù)改一下這個(gè)例子:
char a[10] {="abcde"};
問他這樣行不行。那讀者以為呢?為什么?錯(cuò)誤
猜你喜歡: