Sunday, December 13, 2009

C语言的False和True

高级语言使用多了。 C就忘了。回忆一下吧

从基本开始。False and True

In C, the value nonzero is true while zero is taken as false

C的类型主要是:
1. 数(int, float, ...)
2. 字符(char)
3. 指针(arrary, struct, ...)

对于数, 0就是False, 非0就是True

对于字符, 内容为'\0'就是False, 其它为True

对于指针, 0就是False, 其它为True

如一个例子:

int main(int argc, char *argv[]){

    char *address = "\0jessinio";
    if (*address){
        printf("%s\n", ++address);
    }
    printf("%s\n", ++address);
    return 0;
}

if語句内的代码是不被运行的. 因为if (*address)取回了一个char, 这个char的值为'\0', 所以为False


C语言还支持在判断語句中使用赋值表达式的, 如:

int i;
if ( i = 1 + 1){ // do something }

这是等价于 if ( 1+ 1)

这种用法, 在Python里是Error的

这里描述到: http://ftp.at.gnucash.org/languages/c/cref-mleslie/CONCEPT/true_false.html

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.