zoukankan      html  css  js  c++  java
  • C陷阱和缺陷-笔记

    1.
    &:按位操作符(“与”),将两个表达式的值按二进制位展开,对应的位(bit)按值进行”与”运算,结果保留在该位上。
    &&:逻辑操作符(“与”),计算两个表达式同时成立的“真值”

    2. 词法翻译“贪心法”
    简单来说:每个字符应该包含更多的字符。
    例:a---b与a-- -b相同,而与a- --b不同

    3.
    整型常量的第一个字符为0,代表八进制数。

    4. 单引号和双引号
    printf("a=%d ",a);
    c语言中的单引号用来表示字符常量,双引号用来表示字符串常量。
    比如’a’表示字符常量,在内存中占一个字节,’a’+1就表示’a’的ascii码+1,就是’b’。
    比如”a”表示字符串常量,在内存中占两个字节,因为最后还有一个结束符号’’,”a”+1表示指针运算,结果就指向结束符’’。
    本质上,单引号括起来的一个字符代表整数,双引号括起来的字符代表一个指针。
    'A' == 65
    'a' == 97
    '0' == 48

    5.typedef
    typedef char* PCHAR;
    PCHAR pa, pb;

    6. 函数声明
    a() 其实是 (*a)() 的简写方式
    (*a)()中的a表示一个函数指针,整个表达式表示函数指针a所指向的函数

    7. 运算符优先级
    单目运算符是自右向左结合()
    例: *p++ == *(p++)
    优先级:算术运算符 > 移位 > 关系 > 逻辑

    8. 悬挂'else'
    else始终与同一括号内最近未匹配的if结合

  • 相关阅读:
    用python将博客园的文章爬取到本地
    2016.7.9
    2016.7.8
    2016.7.7
    2016.7.5
    2016.7.4
    2016.7.3
    2016.7.2
    2016.6.28
    2016.6.27
  • 原文地址:https://www.cnblogs.com/stellar/p/8358651.html
Copyright © 2011-2022 走看看