C 字符串怎么可能是布尔值?
C 字符串怎么可能是布尔值?,c,string,pointers,while-loop,boolean,C,String,Pointers,While Loop,Boolean,parse_行的标题 char **commands = parse_line( input, ';' ); int i = 0; while ( commands[i]) { /* Runs some functions, commands[i] not affected */ i++; } 在while循环中,command[i]是否真的是真的 char*line将是类似于ls-l\n的东西 注:\n包括在内,因为用户在输入终端命令后必须按返回。在您的代码中,命令[i]将解析为类型
parse_行的标题
char **commands = parse_line( input, ';' );
int i = 0;
while ( commands[i]) {
/* Runs some functions, commands[i] not affected */
i++;
}
在while循环中,command[i]
是否真的是真的
char*line
将是类似于ls-l\n
的东西
注:
\n
包括在内,因为用户在输入终端命令后必须按返回
。在您的代码中,命令[i]
将解析为类型字符*
,即指针
- 如果指针的值不是NULL,则该值将被视为TRUE
- 如果指针为NULL,则将其视为FALSE
用于条件检查。在
C
中,任何非零值都表示为真。因此,对于值不为0
的所有字符指针,该条件为true
如果命令[i]=NULL
-则此条件在C
中变为false
由于
命令[i]
引用了字符*
,因此,如果非空,则将其视为1
,如果为空,则将其视为0
。将false视为“等于0”,将true视为“不等于0”。{delim,\n'}
-->{delim,\0'}代码>请正确缩进代码。这有助于每个人阅读您的代码。对不起,我是否缩进错误?如果有问题的话,我用的是两个空格而不是四个。编辑:哦,对不起。我没意识到语法错误。修正因为指针仍然是一个地址,它是一个非零整数,对吗?@CodeSammich非常正确,除了int
应该是intptr\t
或uintptr\t
,除非您将null
更改为null
,否则您的答案在技术上是错误的
char **parse_line(char *line)