程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!
1.数据类型
1.1 基本数据类型
1. 整型Integer
int:通常用来表示整数,在不同的编译器和系统环境下,其占用的字节数可能有所不同,常见的是 4 个字节,能表示一定范围的整数值(例如在 32 位系统中,范围大致是 -2147483648 到 2147483647)。
short int(或 short):一般占用 2 个字节,所能表示的整数范围比 int 小,适用于只需较小整数范围的情况,可节省内存空间。
long int(或 long):通常占用 4 个字节或 8 个字节(取决于编译器和系统),能表示的整数范围比 int 更宽,用于需要较大整数范围的场景。
long long int(或 long long):一般占用 8 个字节,可表示非常大的整数范围,常用于对大整数有要求的运算等情况。
2. 浮点型Floating-point
float:单精度浮点型,占用 4 个字节,用于表示带有小数部分的实数,不过其精度相对有限,能表示的有效数字大约是 6 到 7 位。
double:双精度浮点型,占用 8 个字节,精度比 float 高,能表示的有效数字通常在 15 到 16 位左右,常用于对精度要求较高的数值计算场景,比如科学计算等。
long double:一般比 double 具有更高的精度,不同编译器下其占用字节数可能不同,常用于需要极高精度的特殊数值处理情况。
3. 字符型Character
char:用于存储单个字符,在 C 语言中字符是以 ASCII 码值的形式存储的,占用 1 个字节。例如字符 'A' 实际存储的是其对应的 ASCII 码值 65(十进制)。
1.2 构造数据类型
数组(Array):是一组相同类型的数据元素的有序集合。
结构体(Structure):可以将不同类型的数据成员组合在一起,形成一个新的自定义数据类型。
共用体(Union):也叫联合体,它允许不同类型的数据成员共享同一段内存空间,在不同时刻可以存放不同类型的数据,但同一时刻只能存放其中一种类型的数据。
枚举(Enumeration):用于定义一组具有离散值的常量标识符。
1.3 指针类型
指针是一种特殊的数据类型,它存储的是另一个变量的内存地址。
例如 int *p;
表示定义了一个指向整型数据的指针变量 p,通过指针可以间接访问和操作其所指向的变量
在 C 语言中指针的使用非常灵活且广泛,比如在函数传参改变实参的值、动态内存分配等方面都有重要应用。
1.4 空类型(void)
void:常用于表示函数无返回值或者无参数等情况,比如定义一个无返回值的函数可以写成
void functionName();
也用于指针指向不明类型数据的情况等,
像 void *ptr;
表示定义了一个可以指向任意类型数据的指针,但在实际使用时需要进行类型转换才能正确操作其所指向的数据。
2 变量
2.1 使用
变量就像是一个 “容器”,用来存放特定类型的数据。
变量需要先定义再赋值,然后就可以正常使用啦
定义变量格式:数据类型 变量名;
//变量 声明
int num1;
//变量 赋值
num1=101;
//变量 声明和赋值
int num2=110;
//变量使用
printf("num1+num2=%d\n",num1+num2);
AI 代码解读
2.2 变量的命名规则
变量名只能由字母(大小写均可)、数字和下划线组成。
变量名必须以字母或下划线开头,不能以数字开头。
变量名不能是 C 语言中的关键字(如 int、float、if、for 等这些有特定语法功能的保留字)。
变量名最好具有一定的含义,方便阅读和理解代码,例如用 studentName 表示学生的姓名变量等。
2.3 变量的作用域
局部变量:
在函数内部定义的变量称为局部变量,其作用域仅限于定义它的函数内部
全局变量:
在所有函数外部定义的变量就是全局变量,它的作用域从定义的位置开始,到整个源文件结束
//全局 变量
int score=88;
int main(void)
{
//局部变量
float money=8.8f;
printf("money=%f\n",money);
printf("sex=%d\n",score);
return 0;
}
AI 代码解读
3.常量
3.1 常量
常量是指在程序运行过程中其值不能被改变的量
3.2 字面常量
整型字面常量:
就是直接写出的整数数值,例如 10、-25、0 等。
在 C 语言中,根据数值大小和表示形式,整型字面常量还可细分为
十进制整数(如 123)
八进制整数(以 0 开头,像 012 表示八进制的 10)
十六进制整数(以 0x 或 0X 开头,例如 0x1A 表示十六进制的 26)。
浮点型字面常量:
用来表示实数,有两种表示形式。
一种是十进制形式,例如 3.14、-0.5 等;
另一种是科学计数法形式,比如 1.23e2 表示 123.0(e 后面的数字表示 10 的幂次)
字符型字面常量:
用单引号括起来的单个字符,例如 'A'、'3'、' '(空格字符)等。
在 C 语言中,字符型字面常量实际上存储的是该字符对应的 ASCII 码值(占 1 个字节),例如 'A' 的 ASCII 码值是 65。
字符串字面常量:
用双引号括起来的字符序列,像 "Hello"、"C Language" 等。
字符串在内存中是以字符数组的形式存储的,并且会自动在末尾添加一个 '\0' 作为字符串结束标志,所以字符串 "abc" 实际上占用 4 个字节。
3.3 符号常量
通过 #define 预处理指令来定义,语法格式为:
define 符号常量名 常量值
在程序编译之前,预处理器会把代码中所有出现的符号常量名替换成对应的常量值。
使用符号常量可以增强程序的可读性和可维护性,当需要修改常量值时,只需要在 #define 语句处修改即可,而不用在程序中到处查找修改。
3.4 枚举常量
在定义枚举类型时,枚举成员本身就是常量
3.5 常量表达式
是由常量和运算符组成的表达式,其结果在编译时就能确定,例如 2 + 3 * 4 这个表达式的值为 14.
在编译阶段就可以计算出来,在程序运行时它的值不会再发生变化,也属于一种特殊的常量形式。
好啦,本篇就到这里啦,希望大家有所收获!坚持,就一定出奇迹!