文章目录
数据类型
在C语⾔中,提供了丰富的数据类型来描述⽣活中的各种数据。
如使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。
基本数据类型
常见的基本数据类型包括以下几种:
整型(Integer)
整形用于表示整数值,包括正整数和负整数。常用的整型数据类型有:short、int、long和long long。
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//⻓整型
long [int]
[signed] long [int]
unsigned long [int]
//更⻓的整型
//C99中引⼊
long long [int]
[signed] long long [int]
unsigned long long [int]
浮点型(Floating Point)
浮点型用于表示带小数点的数值,包括单精度浮点型和双精度浮点型。常用的浮点型数据类型有:float和double,以及long duoble。
float
double
long double
字符型(Character)
字符型用于表示单个字符,可以是字母、数字、符号等。常用的字符型数据类型是char。
char
[signed] char
unsigned char
布尔型(Boolean)
布尔型用于表示真或假,只有两个取值。常用的布尔型数据类型是boolean。
C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。
在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。
_Bool
注意布尔类型的使⽤得包含头⽂件 <stdbool.h>
布尔类型变量的取值是:true或者false。
#define bool _Bool
#define false 0
#define true 1
signed 和 unsigned
1、signed
signed表示带符号的数据类型,即变量可以是正数、负数或零。通常在定义变量时,如果不写signed关键字,则默认为有符号类型。
signed int a = -10;
// 上面的代码定义了一个有符号的整型变量a,其值为-10。
2、unsigned
unsigned表示无符号的数据类型,即变量只能是正数或零。这种类型的变量只能表示非负数,但它不会把最高位的二进制位作为符号位,因此可以表示比有符号类型大一倍的非负数。
unsigned int b = 20;
//上面的代码定义了一个无符号的整型变量b,其值为20。
当然在unsigned int中int可以省略,所以变量声明就是:
unsigned b = 20;
字符类型 char 也可以设置 signed 和 unsigned
signed char c; //范围为 -128 到 127
unsigned char c; //范围为 0 到 255
要注意的是,在C语⾔规定中, char 类型默认是否带有正负号,由当前系统决定
也就是说, char不等同于 signed char ,它有可能是 signed char ,也有可能是unsigned char 。
这⼀点与 int 不同, int 就是等同于 signed int 。
当然在不同类型的数据可以通过类型转换来相互转换,但需要注意数据转换可能会导致精度损失或数据溢出等问题。因此,在编程中要充分理解不同数据类型的特点和使用方式,避免类型转换错误和数据损失。
变量
变量的创建
在C语言中,我们把经常变化的值叫作变量,不变的值称为常量。
定义变量的语法格式为“数据类型 变量名;”
格式:
int a;
| |
(数据类型)(变量名);
在创建变量时,我们需要先定义变量的类型和名称。
int a; //定义整型变量 a;
char b; //定义字符变量 b;
double c; //定义浮点型变量 c;
当变量在创建时就给一个初始值,叫初始化,也叫赋值 如:
int a = 10;
char b = 'xx';
double c = 3.5;
变量的分类
在C语言中变量可以分为局部变量和全局变量。
1、全局变量
在⼤括号外部定义的变量就是全局变量
全局变量的使⽤范围更⼴,整个⼯程中想使⽤,都是有办法使⽤的。
2、局部变量
在⼤括号内部定义的变量就是局部变量
局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。
其实也就是:
局部变量是在函数内部定义的,只在函数内部有效,离开函数后不能再使用。
而全局变量则可以在整个程序中访问和使用。
#include <stdio.h>
int a = 100; // a是全局变量
int main()
{
int b = 200; // b是局部变量
printf("%d\n", b);
printf("%d\n", a);
return 0;
}
当然,当全局变量和局部变量的变量名相同时,全局变量和局部变量的优先级又是如何呢?
#include <stdio.h>
int a = 1000;
int main()
{
int a = 10;
printf("%d\n" a); //打印的结果是多少呢?
return 0;
}
输出效果:
可以看到,控制台打印出来的是10,也就是输出了main函数里面的变量,也就是局部变量。
综上所述,可知当局部变量和全局变量同名的时候,局部变量会优先使⽤。
补充:局部变量与全局变量在内存中存储在哪里?
- 局部变量是放在内存的栈区。
- 全局变量是放在内存的静态区。
最后
C语言数据类型与变量是编程中的基本概念,对于我们初学者来说非常重要。
通过了解不同的数据类型和变量的创建、存储类别等方面的知识,我们可以更好地理解和运用C语言进行程序开发。
希望本文的介绍能够对大家有所帮助,后续我们会继续深入探讨C语言的其他知识点,敬请期待。