C语言深度解析(三)

二。符号
    1.标准C语言的基本符号
       
      符号            名称              符号               名称
        ,            逗号               >                右尖括号
        .             圆点               !               感叹号
        ;            分号               |                 竖线
        :            冒号               /                 斜杠
        ?            问号               \                反斜杠
        ’            单引号             ~                波折号
        “            双引号             #                 井号
        (            左圆括号           )               右圆括号
        [             左方括号           ]                右方括号
        {             左大括号           }                右大括号
        %             百分号             &                and(与)
        ^             xor(异或)          *                乘号
        -             减号               =                 等号
        <             左尖括号           +                 加号
     2.注释符号
       @1.几个似是而非的注释问题
          A:/*……*/编译器剔除掉注释后,会用空格来代替原来的注释;
          B://双斜杠也是注释;
          C:\是一个接续符;
          D:/*……*/的注释不能嵌套,因为/*总是与离它最近的*/匹配。
       @2.y = x /* p
          y = x /* p,这个表达式其实只是表示吧x的值赋给y,/*后面的


内容都当做注释,但是,由于没有找到*/,所以体术出错。
          y = x/ (*p),表达式的意思就是x除以 p指向的内存里的值,把结


果赋给y。
       @3.出色注释的基本要求
             a:注释应当准确,易懂,防止有二义性。错误的注释不但无益


反而有害。
             b:边写代码边注释,修改代码的同时修改相应的注释,以保证


注释与代码的一致性。不再有用的注释要及时删除。
             c:注释是对代码的“提示”,而不是文档。程序中的注释应当


简单明了,注释太多了会让人眼花缭乱。
             d:一目了然的语句不加注释。
             e:对于全局数据(全局变量,常量定义等)必须要加注释。
             f:注释采用英文,尽量避免在注释中使用缩写,特别是不常用


的缩写。
             g:注释的位置应与被描述的代码相邻,可以与语句在同一行,


也可以在上行,但不可以放在下方。同一结构中不同域的注释要对齐。
             h:当代码比较长2,特别是有多重嵌套时,应当在一些段落的结


束处加注释,便于阅读。
             i:注释的缩进要与代码的缩进一致。
             j:注释代码段时应注重“为何做”,而不是“怎么做”。
             k:数值的单位一定要注释。
             l:对变量的范围给出注释,尤其是参数。
             m:对一系列的数字编号给出注释,尤其在编写底层驱动程序的


时候(比如引脚编号)。
             n:对于函数的入口/出口数据,条件语句,分支语句给出注释。
             o:避免在一行代码或表达式的中间插入注释。
             p:复杂的函数中,在分支语句,循环语句结束之后需要适当的


注释,方便区分各分支或循环体。
             q:对于不需要被编译的区域要使用条件编译来实现,例如,使


用带有注释的#if或#ifdef结构。
     3.连续符合转义符
        @1.c语言里以反斜杠表示断行。编译器会将反斜杠剔除掉,跟在反斜


杠后面的字符自动接续到前一行。但是注意,反斜杠之后不能有空格,反斜杠


的下一行之前也不能有空格。
        @2.反斜杠除了可以被用作接续符外,还能被用作转义字符的开始标


识。
           常用的转义字符及其含义
             转义字符          含义
             \n                回车换行
             \t                横向跳到下一制表位置
             \v                竖向跳格
             \b                退格
             \r                回车
             \f                走纸换页
             \\                反斜杠\
             \'                单引号符
             \a                响铃
             \ddd              1-3位八进制数所代表的字符
             \xhh              1-2位十六进制数所代表的字符
     4.单引号,双引号
         双引号引起来的都是字符串常量;单引号引起来的都是字符常量。  


         ‘a’在内存中占1个字节;“a”在内存中占2个字节。
          自负在内存里是以ASCAII码存储的,所以字符常量可以与整型常量


或变量进行运算,如:'A'+ 1.
     5.逻辑运算符
         双目运算符:|| ,&&
     6.位运算
         C语言中位运算包括下面几种:
          
          &  按位与
          |  按位或
          ^  按位异或
          ~  取反
          << 左移
          >> 右移
             a:位操作需要宏定义好再使用。
             b:如果位操作符‘~’和‘<<’应用于基本类型无符号字符型或


无符号短整型的操作数,结果会立即转换成操作数的基本类型。 ??
             c:位运算符不能用于基本类型是有符号的操作数上。
             d:一元减运算符不能用在基本类型无符号的表达式上,除非在


使用之前对两个操作数进行大小判断,且被减数必须大于减数。
        @1.左移和右移
        左移运算符“<<”是双目运算符,其功能把“<<”左边的运算数的各


二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位


补0。
        右移运算符“>>”是双目运算符,其功能是把“>>”左边的运算数的


各二进位全部右移若干位,由“>>”右边的数制定一定的位数。
        无符号,补0;有符号,补1。
     7.花括号:花括号的作用简单来说就是打包。
     8.++ --操作符
         ++i+++i+++i 怎么算?
         贪心法:
               c语言有这样一个规则:每个符号应该包含尽可能多的字符。


也就是说,编译器将程序分解成符号的方法是,从左到右一个一个字符的读入


,如果该字符可能组成一个符号,那么再读入下一个字符时,判断已经读入的


两个字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入


下一个字符,重复上述判断,直到读入的字符组成的字符串已不可能组成一个


有意义的符号。
               需要注意的是:除了字符串与字符常量,符号的中间不能嵌


入空白(空格,制表符,换行符等)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值