c和指针(pointers on C)第四 ,五章 学习记录

    技术2022-07-11  120

    1.布尔类型

    C不具备布尔类型,而是用整型来替代,一般情况下,0表示假,非0表示真

    2.位操作符

    第五章中介绍了很多关于位操作符的内容,位操作与编汇相关,现在先跳过需要的时候再来看。

    3.条件操作符

    条件操作符接受三个操作数 expression1 ? expression2: expression 先计算expression1,若为真,则整个表达式的值为expression2,反之为expression3 eg: a>5 ? b-6 : c/2 若a大于5 则执行b-6,反之执行c/2 利用条件操作符,可极大简化简单的条件语句

    4.逗号操作符

    expression1,expression2,expression3,… 逗号操作符将两个或多个表达式分隔开,这些表达式自左向右逐个求值,整个逗号表达式的值就是最后那个表达式的值。 eg:

    if(b+1,c/2,d>0) 如果d的值大于0,整个表达式为真

    虽然上例看起来逗号表达式没有什么意义,再看一个例子

    while(a=get_value(),count_value(),a>0) 这样就相当于循环获得下个a的值的过程被简化,利于维护

    5.左值和右值

    L-value 和R-value简单的来说 左值需要特定的位置,且只能将右值赋值给左值 eg: a=b+25; 正确 b+25=a; 错误 因为b+25并没有一个特定的地址去储存这个值,它只是一个表达式 同理 *pointer=20; 左值虽然也是一个表达式,但它有固定的地址存在,因此是正确的赋值。

    Processed: 0.012, SQL: 9