C语言:常量

常量

在C语言中,数据的基本表现形式是常量和变量。不管是变量还是常量,都是需要在内存中申请一块空间,用于数据的存放。

定义:在程序执行过程中其值不可改变的量。称之为常量。

分类:int、float、double、char、符号常量(宏定义)。

整型常量

  • 整型常量可以用十进制、八进制、十六进制三种形式表示。

    • 十进制常量:由数字0~9构成,没有前缀,不能以0开头。举例:

       99,218     // 正确
       0          // 正确
       09         // 错误,不能以0开头
    • 八进制常量:由数字0~7构成,以0为前缀,不能表示小数。举例:

       023,077    // 正确
       00         // 正确
       099        // 错误
    • 十六进制常量:由数字0~9、字母a ~ f/A ~ F构成,以0x / 0X为前缀,不能表示小数。举例:

       0xffffff   // 正确
       0x0        // 正确

    注意:

    整型常量中的长整型数据可用L或者l作为后缀,举例:

     long num = 123L;
  • 整型常量的分类:

    • 有符号与无符号基本整型常量(int)

      • 有符号表示范围:负数 + 0 + 正数,默认写的都是有符号

      • 无符号表示范围:0 + 正数,内存中所有负数的位置都用来表示整数,此时它的正数范围超过有符号正数范围。

    • 有符号与无符号长整型常量(long)

    • 有符号与无符号短整型常量(short)

  • 整型常量的表示

    • 十进制表示:可以使用10个数字符号0~9以及+,-,如:123,-90

    • 八进制表示:以0开头,可以使用7个数字符号0~7以及+,-,如:0123,-011

    • 十六进制表示:以0x或者0X开头,可以使用0~9以及A~F(a~f),如:0x12,-0x12

浮点型常量

C语言中浮点数就是平常说的小数(实数),有两种表现形式:

  • 十进制小数:如:0.123,-12.6,0.123F(float类型的常量,需要跟上F/f

  • 指数形式(科学计数法):

    • 正数表示:如十进制小数1234.5的指数表示法就是1.2345*10^3,也可以表示为1.2345e3

    • 负数表示:如十进制小数0.012的指数表示法就是1.2*10^{-2},也可以表示为1.2e-2

注意

① 在符号e的前面必须要有数字

② 在符号e的后面必须为整数,不能是带有小数点的实数型。

③ 实型常量的后缀用F/f表示单精度型。

字符型常量

用单引号''括起来的一个字符,如'a', 'A', '4', '_'等,比如:'刘'就不是字符,一个汉字所占的字节数超过1个字符。中文符号当成汉字理解。英文输入法下输入的字母、数字、符号都是单字符。

转义字符常量:以反斜杠\开头的字符序列,表示控制以及不可见字符。如:

字符形式中文含义ASCII码
\n换行10
\r回车13
\0空字符0
\t水平制表符9

注意:

使用man ascii可以查看所有的ASCII字符。

字符串常量

说明:在C语言中,支持字符串常量,不支持字符串变量。字符串变量需要使用字符数组或者字符指针实现。

  • 用一对双引号""括起来的一个字符序列,如:

     "How do you do? zhaopeipei"
     "hello world!"
     "12"
     “true”
     "12.25"
  • 可以使用printf输出一个字符序列,如:

     printf("%s","hello world!\n");
     printf("hello world!\n"); // 等价于上面写法

注意

字符常量'a'与字符串常量"a"的区别:

系统自动为字符串常量加上结尾的\0,使所占内存单元多一个,单字符常量的长度不变,可用sizeof()运算符来测量。

符号常量

说明:一般通过宏定义,在预处理的时候替换成具体的常量

定义一个标识符来代表一个常量,如:用PI表示圆周率π(3.1415926)

好处:

  • 增加代码的可读性

  • 增强了代码的可维护性

定义符号常量:

  • 需要借助预处理指令:#define

  • 格式:

     #define 宏名称 宏值

  • 注意:

    • 宏名称和宏值之间用空格隔开

    • 句末不能添加任何符号

    • 无参的宏名称的命名采用大写,如果有多个单词,使用下划线分隔,举例:

       #define MAX_VAL 9999
       #define MIN_VAL 1000
  • 举例:

     #include <stdio.h>
     ​
     // 定义符号常量
     #define PI 3.14
     #define R 20
     ​
     int main(int argc,char *argv[])
     {
         // 计算圆的周长 2 × PI × R
         printf("计算圆的周长:%f\n",2 * PI * R);// %f:以小数显示
     ​
         // 计算圆的面积 PI × R × R
         printf("计算圆的面积:%f\n",PI * R * R);
     ​
         return 0;
     }

日常错误

  • 问题描述:编译过程中,控制台提示类似于 \357这样的信息

  • 解答:这是由于代码中使用了中文标点符号导致的错误

  • 演示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值