C语言学习道路——数据类型与变量

数据类型

在C语⾔中,提供了丰富的数据类型来描述⽣活中的各种数据。
如使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。

基本数据类型

常见的基本数据类型包括以下几种:

整型(Integer)

整形用于表示整数值,包括正整数和负整数。常用的整型数据类型有:shortintlonglong 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)

浮点型用于表示带小数点的数值,包括单精度浮点型和双精度浮点型。常用的浮点型数据类型有:floatdouble,以及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 intint可以省略,所以变量声明就是:
 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函数里面的变量,也就是局部变量。
综上所述,可知当局部变量和全局变量同名的时候,局部变量会优先使⽤。

补充:局部变量与全局变量在内存中存储在哪里?

  1. 局部变量是放在内存的栈区。
  2. 全局变量是放在内存的静态区。

最后

C语言数据类型与变量是编程中的基本概念,对于我们初学者来说非常重要。
通过了解不同的数据类型和变量的创建、存储类别等方面的知识,我们可以更好地理解和运用C语言进行程序开发。
希望本文的介绍能够对大家有所帮助,后续我们会继续深入探讨C语言的其他知识点,敬请期待。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值