C语言 百文网手机站

c语言大括号怎么用

时间:2022-09-06 10:05:59 C语言 我要投稿

c语言大括号怎么用

  大括号出现在脚本的各个角落,其用法也各有不同。同音多义字在汉语中最容易让人混淆,而大括号也正是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是由自己在当前目录创建的文件

  {

  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修改其执行权限。

  2./bin目录、/sbin目录、/usr/local/bin/目录、/usr/local/sbin目录、/usr/bin目录、/usr/sbin目录的区别与联系

  最需要注意的一点,usr不是user的意思,而是unix system resource的简称,也就是unix系统资源。在/usr这个目录下,放了一些系统

  相同之处:都是一些命令;

  不同之处:

  /bin:基本命令

  /sbin:基本系统命令

  /usr/bin:与/bin类似,包括此后安装软件的命令

  /usr/sbin:与/sbin类似,包括此后增加的系统管理的一些命令

  /usr/local/bin:与/bin,/usr/bin类似,但是局部(local)范围,linux是多用户系统,有分级的权限,有些软件内容必须添加在/usr/local/bin,而不是/usr

  /usr/local/sbin:同上

  3.好脚本需要珍藏,以备不时之需。

  拓展:c语言小括号的用法

  1、单小括号 ()

  ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。

  ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。

  ③用于初始化数组。如:array=(a b c d)

  2、双小括号 (( ))

  ①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的.退出状态码为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。

  ②只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,输出结果全都自动转化成了十进制。如:echo $((16#5f)) 结果为95 (16进位转十进制)

  ③单纯用 (( )) 也可重定义变量值,比如 a=5; ((a++)) 可将 $a 重定义为6

  ④常用于算术运算比较,双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。 只要括号中的表达式符合C语言运算规则,比如可以直接使用for((i=0;i<5;i++)), 如果不使用双括号, 则为for i in `seq 0 4`或者for i in {0..4}。再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ]。

  下面的程序给多维数组初始化,注意初始化时花括号和小括号的区别

  [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