• c 的数据类型、运算符、表达式 (第二章)


    2.1 变量名

    变量名由字母和数字组成,第一个字符必须是字母,下划线 "_" 也算是一个字母,变量名是严格区分大小写的,除了常用的关键字,如 if else while int float ... 其他的都能用。 变量的命名很重要,基本遵循功能驱动的方式,简洁、带有说明的英文单词,c好像喜欢用小写及英文单词的缩写来命名,可以借鉴。

    2.2 数据类型

    char 字符串  int 整型  float 浮点型  double 双精度型 。2个限定符  unsigned 非负数 signed 实数 ,如果是32位的计算机,chars 含有8个bits , unsigned chars 的范围是 (0-255) ,signed chars 的范围是 (-128) - (127) 。

    2.3 常量

    整型常量 1234 , 123456789L  L表示 long ,ul表示 unsigned long。 浮点型常量 123.31f,同样 f 表示float。 字符串型常量 'x' , 字符串常量 '0' ,在ASCII 表中表示的值 为 48。枚举常量 enum boolean {NO,YES}; 。 定义一个常量需要使用关键字 #define MAX 1000 ,这里定义了一个整型常量 MAX 它的值为1000.

    2.4 定义变量

    可以把相同类型的变量定义在一行中,如:

    1 int lower, upper, step;
    2 char c, line[1000];

    也可以分开定义,以便注释变量的用途,如

    int lower;               /* comment write here */
    int upper;
    int step;
    char c;
    char line[1000];

    变量也可以在声明中进行初始化,如

    1 char esc = '\\';
    2 int i = 0;
    3 int limit = MAXLINE+1;
    4 float eps = 1.0e-5;

    2.5 数学运算符

    加减乘除,模运算。

    1 /*  + - * /  %  */
    2 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    3     printf("%d is a leap year\n", year);
    4 else
    5     printf("%d is not a leap year\n", year);

    2.6 关系运算符

    >  >=  <  <= 它们有同样的优先级, ==  != 它们有相同的优先级。 &&  || 逻辑运算符的优先级为从左到右。

    for (i=0; i < lim-1 && (c=getchar()) != '\n' && c != EOF; ++i)
        s[i] = c;

    i < lim - 1 的表达式计算会优先于 c=getchar() , 因为 && 为从左到右的优先计算规律。

    2.7 自增、自减

    ++i; --i;      s[i++];  k[i--];

    2.8 位运算

    不懂...

    2.9 赋值和表达式

    利用 + - * / % << >> & ~ ^ | 这些操作符,有的是位操作符,有的是算术操作符与变量结合形成表达式,基本公式如下:

    /*------------------- formular */
    expr1 = (expre1) op (expre2) ;  
    expre1 op= expre2 ;
    /*--------------------------------------- */
    x *= y+1;           // same expression
    x = x * (y+1);
    /*--------------------------------------- */

    2.10 条件表达式

    expr1 ? expr2 : expr3  //formular
    
    z = (a > b) ? a : b; /* z = max(a, b) */

    附操作符的优先级:

    小结:

     从这2章来看, php 和 c 有个关键就是数据类型,因为学php,所以对数据类型的概念弱化了,'$' 符号写多了,转向其他语言会不自然的写上 $name = 10; 。而c 不仅变量的申明需要数据类型,函数的定义也需要显式的指明返回的数据类型,函数的定义大概如下:

    return_type function_name
    {
      // function body
     // return ;
    }

    如果函数没有返回它申明的数据类型,或是返回了错误的,又或是返回了不该返回的类型,编译器都不能通过编译,我想这个数据类型就是干学PHP的硬伤,因为我们不需要考虑数据类型,它在内存中所占的大小...等等,久而久之,我们对其他数据结构也会感到陌生和难以理解。

    ps:这本书的东西很浓缩,是需要不断地熟悉和练习,才能灵活的使用,理解力不代表动手能力,赶紧得上机练习习题吧,1周1章的进度也不慢了。这书也就9章。

    位运算,我完全没概念,先放放吧,从未用过位运算的。

  • 相关阅读:
    JZOJ 3845. 简单题(simple)
    JZOJ 3844. 统计损失(count)
    JZOJ 3843. 寻找羔羊(agnus)
    JZOJ 3833. 平坦的折线
    JZOJ 1956. 矩形
    JZOJ 3832. 在哪里建酿酒厂
    mysql 语法一 :case when详解
    阿里云推荐码
    redis配置文件详解(转)
    压力测试工具 webbench总结
  • 原文地址:https://www.cnblogs.com/arist/p/2692339.html
Copyright © 2020-2023  润新知