c語言大括號怎么用
大括號出現(xiàn)在腳本的各個角落,其用法也各有不同。同音多義字在漢語中最容易讓人混淆,而大括號也正是bash語言中的“同音多義字”。下面小編就為大家介紹c語言大括號怎么用。
第一種用法,符號擴展
#!/bin/bash
echo "{hello,world}"
#######################
# 輸出為:"hello" "world"
#######################
echo {a..c} #只能是..
######################
# 輸出為: a b c
######################
第二種用法,代碼塊表示法
與c語言中的作用相似,c語言中,有了{}的代碼塊,其變量作用域就改變了;bash中,卻不存在這個功能,在{}中的內容,仍然與外部變量名相通。此外,{}代碼塊表示法還有一個作用,就是將代碼塊內所有的輸入輸出信息重定向。
#腳本1
#!/bin/bash
a=123
{ a=321; } #大括號兩邊內部變量與大括號之間一定要用空格隔開
echo "a = $a " #輸出 a=321
#腳本2
#!/bin/bash
File="`pwd`/fas" #fas是由自己在當前目錄創(chuàng)建的文件
{
read line1
read line2
} < $File #此處進行重定向,將fas文件的內容讀入到line1和line2
echo "First line in $File is: "
echo "$line1"
echo
echo "second line in $File is :"
echo "$line2"
exit 0
與大括號{}有些相似的符號是圓括號()。但圓括號()內的代碼將啟動一個子shell來運行,{}不會這樣。
#!/bin/bash
a=123
( a=321; )
echo "a = $a" #a=123
附注:
1.如果想讓你的腳本像ls等命令一樣通用,那么需要將命令復制到/usr/local/bin,并使用chmod 777 filename修改其執(zhí)行權限。
2./bin目錄、/sbin目錄、/usr/local/bin/目錄、/usr/local/sbin目錄、/usr/bin目錄、/usr/sbin目錄的區(qū)別與聯(lián)系
最需要注意的一點,usr不是user的意思,而是unix system resource的簡稱,也就是unix系統(tǒng)資源。在/usr這個目錄下,放了一些系統(tǒng)
相同之處:都是一些命令;
不同之處:
/bin:基本命令
/sbin:基本系統(tǒng)命令
/usr/bin:與/bin類似,包括此后安裝軟件的命令
/usr/sbin:與/sbin類似,包括此后增加的系統(tǒng)管理的一些命令
/usr/local/bin:與/bin,/usr/bin類似,但是局部(local)范圍,linux是多用戶系統(tǒng),有分級的權限,有些軟件內容必須添加在/usr/local/bin,而不是/usr
/usr/local/sbin:同上
3.好腳本需要珍藏,以備不時之需。
拓展:c語言小括號的用法
1、單小括號 ()
、倜罱M。括號中的命令將會新開一個子shell順序執(zhí)行,所以括號中的變量不能夠被腳本余下的部分使用。括號中多個命令之間用分號隔開,最后一個命令可以沒有分號,各命令和括號之間不必有空格。
、诿钐鎿Q。等同于`cmd`,shell掃描一遍命令行,發(fā)現(xiàn)了$(cmd)結構,便將$(cmd)中的cmd執(zhí)行一次,得到其標準輸出,再將此輸出放到原來命令。有些shell不支持,如tcsh。
③用于初始化數(shù)組。如:array=(a b c d)
2、雙小括號 (( ))
、僬麛(shù)擴展。這種擴展計算是整數(shù)型的計算,不支持浮點型。((exp))結構擴展并計算一個算術表達式的值,如果表達式的結果為0,那么返回的.退出狀態(tài)碼為1,或者 是"假",而一個非零值的表達式所返回的退出狀態(tài)碼將為0,或者是"true"。若是邏輯判斷,表達式exp為真則為1,假則為0。
、谥灰ㄌ栔械倪\算符、表達式符合C語言運算規(guī)則,都可用在$((exp))中,甚至是三目運算符。作不同進位(如二進制、八進制、十六進制)運算時,輸出結果全都自動轉化成了十進制。如:echo $((16#5f)) 結果為95 (16進位轉十進制)
③單純用 (( )) 也可重定義變量值,比如 a=5; ((a++)) 可將 $a 重定義為6
④常用于算術運算比較,雙括號中的變量可以不使用$符號前綴。括號內支持多個表達式用逗號分開。 只要括號中的表達式符合C語言運算規(guī)則,比如可以直接使用for((i=0;i<5;i++)), 如果不使用雙括號, 則為for i in `seq 0 4`或者for i in {0..4}。再如可以直接使用if (($i<5)), 如果不使用雙括號, 則為if [ $i -lt 5 ]。
下面的程序給多維數(shù)組初始化,注意初始化時花括號和小括號的區(qū)別
[cpp] view plain
#include
intmain()
{
inta[2][2]={(1,2),(3,4),};//如果把小括號換成花括號,結果就不一樣了,小括號(1,2)返回2(3,4)返回4,另外兩個元素默認是0
inti,j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%d",a[i][j]);
printf(" ");
}
int*p=a[0];
printf("%d ",p[0]);
return0;
}
/*
運行結果:
24
00
2
*/
【c語言大括號怎么用】相關文章:
c語言大括號的用法04-02
c語言中fprintf怎么用10-06
c語言中%s怎么用10-04
c語言中邏輯或怎么用04-10
c語言問號冒號怎么用09-27
怎么學習C語言09-04
怎么自學C語言09-11
c語言中怎么畫圖10-07
怎么學習C語言編程09-23