Ric*_*Man 0 c unix arrays shell operators
我正在学习操作系统课程,我们被分配了Abraham Silberschatz Operating Systems第157页中的"Project 1 UNIX Shell and History Feature".我正在研究这个问题,并且遇到了一个有趣的GitHub代码.它包括一个"else if"声明,其中包含一个我以前从未见过的运算符(短划线 - ).我试图找出它的作用.
(链接)https://github.com/deepakavs/Unix-shell-and-history-feature-C/blob/master/shell2.c
else if (args[0][0]-'!' ==0)
{ int x = args[0][1]- '0';
int z = args[0][2]- '0';
Run Code Online (Sandbox Code Playgroud)
你可以在两个D数组中看到"ags [0] [0] - '!'"和"int x"和"int z"
有人能告诉我这叫什么,它在做什么?
谢谢
args[0][1] - '0'
是将char
表示数字的值转换为该数字的数值的惯用方法.它适用于C支持的所有编码.
args[0][0] - '!' == 0
如果args[0][0]
具有相同的值,则是一种华而不实的测试方式'!'
.作者有一种特殊的,也许是不切实际的对称感:大多数人会写作args[0][0] == '!'
.
归档时间: |
|
查看次数: |
116 次 |
最近记录: |