zoukankan      html  css  js  c++  java
  • 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章。

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

  • 相关阅读:
    part11-1 Python图形界面编程(Python GUI库介绍、Tkinter 组件介绍、布局管理器、事件处理)
    part10-3 Python常见模块(正则表达式)
    Cyclic Nacklace HDU
    模拟题 Right turn SCU
    状态DP Doing Homework HDU
    Dp Milking Time POJ
    区间DP Treats for the Cows POJ
    DP Help Jimmy POJ
    Dales and Hills Gym
    Kids and Prizes Gym
  • 原文地址:https://www.cnblogs.com/arist/p/2692339.html
Copyright © 2011-2022 走看看