C语言基础

内容提要:整型常量、浮点常量、字符型常量、字符串常量、符号常量

常量

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

定义:在执行过程中其值不能被改变的量。

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

整型常量

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

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

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

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

      0xff0000    // 正确的
      0X55        // 正确的
      0x0         // 正确的
      

      整型常量

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

    • 有符号与无符号基本整型常量
      • 有符号表示范围:负数+0+正数
      • 无符号表示范围:0+正数,内存中所有负数的位置都用来表示正数范围超过有符号正数范围。
    • 有符号与无符号长整型常量(long)
    • 有符号与无符号短整型常量(short)
  • 整型常量的表示

    • 十进制表示:可以使用10个数字符号0~9以及+,- ,如:123,-90
    • 八进制表示:以0开头,可以使用7个数字符号0~7以及+,- ,如:123,-110
    • 十六进制表示:以0x或者0X开头,可以使用0~9以及 A~F(a~f) ,如:0x12,-0x12

浮点型常量

C语言中浮点型就是平常所说的小数(实数),

  • 十进制小数
  • 指数形式(科学计数法):
    • 正数表示:如十进制小数1234.51234.51234.5的指数表示法1.2345∗1031.2345*10^31.2345103,也可表示1.2345e31.2345e31.2345e3;
    • 负数表示:如十进制小数0.0120.0120.012的指数表示法1.2∗10−21.2*10^-21.2102,也可表示1.2e−21.2e-21.2e2;

注意:

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

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

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

字符型常量

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

转义字符常量:以反斜杠\开头的字符

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

字符串常量

说明:在C语言中,支持字符串常量,不支持字符串变量。字符串变量

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

    "how do you do ?"
    "yueqian"
    "12"
    "true"
    "12.25"
    
  • 可使用printf输出一个字符序列,如:

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

注意:

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

符号常量

说明:

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

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

好处:

  • 增加可读性
  • 增加了可维护型
#define PI 3.14
PI * 2 * 2;

2 * PI * 2;

定义符号常量:

  • 用预处理指令:#define
  • 格式:
#define 标识符 字符串
  1. 标识符和字符串之间用空格隔开
  2. 句末不用分号
  3. 标识符的命名采用大写,如果有多个单词,使用下划线分隔,举例:
/*************************************************************************
  > File Name:   demo01.c
  > Author:       FPF
  > Description:  
  > Created Time: 2025年04月28日 星期一 10时21分06秒
 ************************************************************************/

#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;
}

用预处理指令:#define

  • 格式:
#define 标识符 字符串
  1. 标识符和字符串之间用空格隔开
  2. 句末不用分号
  3. 标识符的命名采用大写,如果有多个单词,使用下划线分隔,举例:
/*************************************************************************
  > File Name:   demo01.c
  > Author:       FPF
  > Description:  
  > Created Time: 2025年04月28日 星期一 10时21分06秒
 ************************************************************************/

#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;
}

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐