C语言基础第1天:数据类型、常量

一、数据类型

(一)数据类型的定义

        数据类型是固定大小内存的别名,它描述了变量存放数据的类型,其核心作用是组织和操作数据。计算机要处理的数据包括数字、字符串、文字、符号、图片、音视频等,数据类型不仅助力这些数据的组织与操作,还决定了程序对内存的有效利用方式。同时,了解数据类型的内存需求是理解计算机管理和操作数据的关键,因为程序运行依赖内存。

(二)数据类型的分类

基本类型(C 语言内置)

1.数值类型

  •  整型(整数):包括短整型(short,即 short int 的缩写)、基本型(int,使用频率最高)、长整型(long,即 long int 的缩写)、长长整型(long long,即 long long int 的缩写,C99 新增)。
  • 浮点型(小数、实数、实型):有单精度型(float)、双精度型(double)、长双精度型(long double,C99 新增)。
  • 字符型:char。
  • 空类型:void(C 语言内置)。

2.构造类型:包括结构体(struct)、联合体 / 共用体(union)、枚举类型(enum)。

3.指针类型:指针是一种特殊的数据类型,其值为内存地址。借助指针,能够直接对内存进行操作,还能高效处理数组、动态内存分配等复杂的数据结构。

(三)数据类型在内存中的大小(重点)

1. 不同数据类型在内存中所占字节数如下:

序号

数据类型

中文说明

大小(字节)

1

short(short int)

短整型

2

2

int

基本整型

4

3

long(long int)

长整型

4(32 位系统)/8(64 位系统)

4

long long(long long int)

长长整型

8

5

float

单精度浮点型

4

6

double

双精度浮点型

8

7

char

字符型

1

8

bool(_Bool,C99 新增)

布尔型,true - 真,false - 假

bool:1,true(1):4,false(0):4

2. 总结:

  • 数据类型在内存中所占的字节数与 C 语言的编译系统有关。
  • 可使用 sizeof 运算符计算某个数据类型所占字节数。
  • 布尔类型需添加 #include ,也可直接使用 int 类型的 0 和 1 表示布尔类型。

二、常量

(一)常量的定义

        在程序执行过程中其值不可改变的量称为常量,常量和变量都需要在内存中申请空间用于存放数据。

(二)常量的分类

1. 整型常量

  • 表示形式:可采用十进制、八进制、十六进制三种形式。
    • 十进制常量:由数字 0 ~ 9 构成,无前缀,不能以 0 开头,如 99、218、0(正确),09(错误)。
    • 八进制常量:由数字 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 + 正数,其正数范围超过有符号正数范围。

2. 浮点型常量

  • 表现形式:包括十进制小数和指数形式(科学计数法)。
    • 十进制小数:如 0.123、-12.6、0.123F( float 类型的常量,需加 F/f )。
  • 指数形式:正数表示如 \ ( 1.2345 * 10 ^ { 3 } \ ) 可表示为 1.2345e3 ;负数表示如 \(1.2 * 10^{-2}\)可表示为 1.2e-2。

        注意事项:符号 e 前面必须有数字;符号 e 后面必须为整数,不能是带小数点的实数型;实型常量的后缀用 F/f 表示单精度型。

3. 字符型常量

  • 用单引号 '' 括起来的一个字符,如 ' a '、' A '、' 4 '、' _ ' 等,汉字及中文符号不属于字符型常量,英文输入法下的字母、数字、符号为单字符。
  • 转义字符常量:以反斜杠 \ 开头的字符序列,表示控制及不可见字符,部分转义字符如下:

字符形式

中文含义

ASCII 码

\n

换行

10

\r

回车

13

\0

空字符

0

\t

水平制表符

9

4. 字符串常量

  • 说明:C 语言支持字符串常量,不支持字符串变量,字符串变量需用字符数组或字符指针实现。
  • 表示:用一对双引号 ""括起来的字符序列,如" How do you do? zhaopeipei "、" hello world! " 等。
  • 输出:可使用 printf 输出,如 printf (" % s "," hello world!\n ") 与 printf (" hello world!\n ") 等价。

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

5. 符号常量(宏定义)

  • 说明:通过宏定义,在预处理时替换成具体常量,如用 PI 表示圆周率 π。
  • 好处:增加代码可读性,增强代码可维护性。
  • 定义:借助预处理指令 #define,格式为 #define 宏名称 宏值,宏名称和宏值之间用空格隔开,句末不能添加任何符号。
  • 命名规则:无参的宏名称采用大写,多个单词用下划线分隔,如 #define MAX_VAL 9999、#define MIN_VAL 1000。
(三)日常错误

        编译过程中,控制台提示类似于 \357 的信息,通常是由于代码中使用了中文标点符号导致的错误。

你可能感兴趣的:(C语言基础第1天:数据类型、常量)