嵌入式技术
C语言中的整型数据如下表所示:
数据类型 | 含义 | 长度(字节) | 取值范围(有符号) | 取值范围(无符号) |
---|---|---|---|---|
short | 短整型 | 2 | [ - , -1 ] | [ 0 , -1 ] |
int | 整型 | 4 | [ - , -1 ] | [ 0 , -1 ] |
long | 长整型 | 4或8 | ||
long long | 长长整型 | 8 | [ - , -1 ] | [ 0 , -1 ] |
浮点型用于表示实数,它分为单精度浮点型(float)和双精度浮点型(double)。单精度浮点型占用4个字节,双精度浮点型占用8个字节。它们的取值范围和精度如下表所示:
数据类型 | 长度(字节) | 取值范围 | 精度 |
---|---|---|---|
float | 4 | 1.2E-38 ~ 3.4E38 | 约6位小数 |
double | 8 | 2.2E-308 ~ 1.8E308(15位有效数字) | 约15位小数 |
浮点型数据在计算机内部以二进制形式存储,因此可能会存在精度问题。在进行浮点型数据的比较时,应该使用适当的误差范围进行比较。
字符型用于表示单个字符,它占用1个字节。
数据类型 | 含义 | 长度(字节) | 取值范围(有符号) | 取值范围(无符号) |
---|---|---|---|---|
char | 字符型 | 1 | [ - , -1 ] | [ 0 ,-1 ] |
字符型数据可以作为单个字符使用,也可以作为整型数据使用,表示该字符在ASCII码表中的对应数值。
布尔型(bool)用于表示真假值,它只有两个取值:true和false。
在C语言中,布尔型数据被定义为一个整型数据类型,0表示false,非0表示true。
在C语言中,变量必须先被定义或声明才能使用。定义一个变量意味着为它分配内存,声明一个变量意味着告诉编译器这个变量的类型和名称。
type variable_name;
其中,type是变量的数据类型,variable_name是变量的名称。例如:
int apple;
short i = 5;
float voltage;
一种是需要建立存储空间的。例如:int apple 在声明的时候就已经建立了存储空间。
另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。例如:extern int apple, 其中变量 apple 可以在别的文件中定义。
extern int apple; //声明,不是定义
int students; //声明,也是定义
一般来讲,除非有extern关键字,否则都是变量的定义
在C语言中,变量的类型指的是变量所存储的数据类型。我们前面介绍的基本数据类型,都可以作为变量的类型。
C语言还提供了一些复合数据类型,如结构体、联合体和枚举等,这些符合数据类型,我们在以后的文章中再介绍。
正确的变量命名
int _gCount = 1;
int m_Age = 18;
long time2 = 20;
错误的变量命名
int 1round = 0; //不能以数字开头
int case = 1; //不能以关键字作为变量名
int %age = 16; //不能用标点符号
int name age = 18; //不能用空格
例如,下面的代码将值20赋给变量num:
int num;
num = 20;
例如,下面的代码声明并初始化了一个名为num的整数变量:
int num = 10;
在C语言中,变量的作用域指的是变量在程序中可见的范围。变量可以在函数内部或外部定义。
#include < stdio.h >
void print_local_num() {
int local_num = 20; // 局部变量
printf("local_num = %dn", local_num);
}
int main()
{
print_local_num(); // 输出 local_num = 20
return 0;
}
#include < stdio.h >
int global_num = 10; // 全局变量
void print_global_num() {
printf("global_num = %dn", global_num);
}
int main() {
print_global_num(); // 输出 global_num = 10
return 0;
}
在C语言中,变量的存储类型指的是变量所存储的位置。C语言中的存储类型包括自动、静态、寄存器和外部等。
自动变量的默认存储类别为auto。例如,下面的代码定义了一个自动变量num:
#include < stdio.h >
void print_num() {
auto int num = 30;
printf("num = %dn", num);
}
int main() {
print_num(); // 输出 num = 30
return 0;
}
静态变量默认存储类别为static,在程序执行期间始终存在,它的值在函数调用之间保持不变。例如,下面的代码定义了一个静态变量static_num:
#include < stdio.h >
void print_static_num() {
static int static_num = 40;
printf("static_num = %dn", static_num);
static_num++;
}
int main() {
print_static_num(); // 输出 static_num = 40
print_static_num(); // 输出 static_num = 41
print_static_num(); // 输出 static_num = 42
return 0;
}
寄存器变量的默认存储类别为register。例如,下面的代码定义了一个寄存器变量reg_num:
#include < stdio.h >
void print_reg_num() {
register int reg_num = 50;
printf("reg_num = %dn", reg_num);
}
int main() {
print_reg_num(); // 输出 reg_num = 50
return 0;
}
外部变量的默认存储类别为extern。例如,下面的代码定义了一个外部变量extern_num,并在另一个文件中访问它:
// other_file.c
int extern_num = 60;
// main.c
#include < stdio.h >
extern int extern_num;
void print_extern_num() {
printf("extern_num = %dn", extern_num);
}
int main() {
print_extern_num(); // 输出 extern_num = 60
return 0;
}
在C语言中,常量可以是整数、浮点数、字符或字符串。
整数常量是指不带小数部分的数字。在C语言中,整数常量可以用十六进制、八进制或十进制表示。下表列出了不同进制下整数常量的表示方法:
进制 | 格式 | 示例 |
---|---|---|
十进制 | 直接写数字 | 10, 20, 30 |
八进制 | 以0开头 | 012, 034, 076 |
十六进制 | 以0x或0X开头 | 0x10, 0x1E, 0xFF |
例如,下面的代码定义了三个整数常量:
#include < stdio.h >
int main() {
int decimal_num = 10;
int octal_num = 012;
int hex_num = 0xFF;
printf("decimal_num = %d, octal_num = %d, hex_num = %dn", decimal_num, octal_num, hex_num);
return 0;
}
输出结果为:decimal_num = 10, octal_num = 10, hex_num = 255。
浮点数常量是指带有小数部分的数字。在C语言中,浮点数常量可以用小数点表示,也可以用科学计数法表示。例如,下面的代码定义了两个浮点数常量:
#include < stdio.h >
int main() {
float float_num = 1.23;
double double_num = 1.23e-5;
printf("float_num = %f, double_num = %fn", float_num, double_num);
return 0;
}
输出结果为:float_num = 1.230000, double_num = 0.000012。
字符常量是指用单引号括起来的单个字符。例如,下面的代码定义了两个字符常量:
#include < stdio.h >
int main() {
char char_a = 'A';
char char_b = 'B';
printf("char_a = %c, char_b = %cn", char_a, char_b);
return 0;
}
字符串常量是指用双引号括起来的多个字符。在C语言中,字符串常量实际上是一个字符数组,以空字符('�')结尾。例如,下面的代码定义了一个字符串常量:
#include < stdio.h >
int main() {
char str[] = "Hello, world!";
printf("%sn", str);
return 0;
}
输出结果为:Hello, world!。
通过这篇文章,我们已经学会了C语言中基本的数据类型、变量和常量的使用。继续加油,你会成为C语言大佬的!
全部0条评论
快来发表一下你的评论吧 !