美文网首页
C语言从基础 -> 精通 -> 底层 (3) 常量和变量

C语言从基础 -> 精通 -> 底层 (3) 常量和变量

作者: Yasuo_4a5f | 来源:发表于2020-08-21 11:16 被阅读0次

    一.常量

    1.整型常量

    1.1十进制整数

    int a = 123;
    int b = +645;
    int c = -1112;
    

    上面的代码中,“=”右面的就是十进制整数。可以带正负号,一搬“+”号省略。

    1.2八进制整数

    八进制的数表示为前面带“0”的数,如:

    int a = 0124;
    int b = +054;
    int c = -014;
    

    上面的代码中,“=”右边都是八进制整数。看到这种貌似多余的“0”就要反应出是八进制。

    1.3十六进制整数

    与八进制不同,十六进制整数以“0x”开头,如:

    int a = 0x17c;
    int b = +0x123;
    int c = -0xfcc;
    

    上面的代码中,“=”右边的是十六进制整数。

    2.实型常量

    2.1 十进制小数形式

    double a = 0.0;
    double b = 0.29;
    double c = 21.45;
    
    float d = 0.1f;
    

    上面代码中“=”右面的就是十进制小数。值得注意的是,float类型赋值时,常量的后面要加"f",因为不加这个"f" 计算机会分配一个double类型大小的空间,而前面的变量类型又是float,这时就会报错。

    2.2 十进制指数形式

    double a = 2.4E4;  // 2.4 * 10 ^ 4
    double b = 3.1e3;  // 3.1 * 10 ^ 3
    

    这是科学计数法的表示形式,第一行表示2.4乘以10的4次方。使用“E”或“e”都可以。

    3.字符常量

    3.1普通字符

    字符常量需要用单引号表示,或者用ASCII码值

    char a = 'A';
    char b = 65;
    

    上面代码中“=”右面的是字符常量。为什么?第二行明明是数字啊。因为ASCII码中65表示大写字母A,如果赋值给int类型的变量,它就是65,如果赋值给char型变量,它就是字母A。

    3.2 转义字符

    C语言中用反斜杠“\”加字符表示一直特殊的意义,叫做转义字符。下面是转义字符表。


    C语言转义字符表

    4. 字符串常量

    char str[] = "ABCD";
    

    “=”右面就表示一个字符串常量。
    需要说明的是,字符串的存储比较特殊,系统会自动在字符串后面加入一个'\0'符号。这个符号在转义字符表中可以找到,代表空字符。计算机用它表示一个字符串的结束。因此,"ABCD"在内存中其实是"ABCD\0"。

    符号常量

    又叫做宏常量,是一个预处理命令,格式如下:

    #define 常量名 常量
    
    #define PI 3.1415926
    
    double a = PI * 2; // -> double a = 3.1415926 * 2;
    
    

    值得注意的是,这种宏常量的表示方法相当于把定义中常量位置的东西原封不动地写在常量名的地方。

    二、变量

    1.什么是变量?

    在C语言中我们用一个个的变量操作对应内存中数据的操作

    2.变量的使用

    int a = 1;
    /*
    定义变量
    int a,在内存中开辟了4Bytes的内存空间,并且为这个空间起了个名字,叫做a
    
    赋值
    = 1,这是变量的初始化,在a对应的内存空间中放入一个数1
    */
    

    再次强调,C语言中,变量在使用前一定要初始化。否则会出现意想不到的错误。

    相关文章

      网友评论

          本文标题:C语言从基础 -> 精通 -> 底层 (3) 常量和变量

          本文链接:https://www.haomeiwen.com/subject/ghxaghtx.html