数据类型与变量

本文详细介绍了C语言中的数据类型,包括整型、浮点型、布尔类型和字符型,以及它们的长度和signed/unsigned修饰符的区别。此外,还讲解了变量的初始化、全局变量和局部变量的概念,以及sizeof操作符的用法。
摘要由CSDN通过智能技术生成

数据类型和变量

在这里插入图片描述

1.数据类型

C语言中提供丰富的数据类型描述生活中的各种数据。

1.1整型
//短整型
short [int]
[signed] short [int]
unsigned short [int]

//整型
int
[signed] int
unsigned int

//长整型
long [int]
[signed] long [int]
unsigned long [int]
1.2浮点型
float//单精度
double//双精度
long doule
1.3布尔类型
_Bool

布尔类型变量的取值是:true或false。C语言中0表示假,非0表示真。

布尔类型使用需要包含头文件<stdbool.h>

1.4字符型
char
[signed] char//有符号的
unsigned char//无符号的
1.5数据类型的长度

每一种数据类型都有自己的长度,使用不同的数据类型,就能创建长度不同的变量,变量长度不同,存储的数据范围就不同。我们可以使用sizeof计算变量类型长度。

sizeof是一个关键字,也是操作符,用来计算sizeof的操作符数的类型长度,单位是字节。

sizeof (类型)
sizeof 表达式

注意:①sizeof 后面的表达式不真实参与计算,只根据表达式类型得出大小。

​ ②sizeof的计算结果是size_t类型,C语言中可直接使用。

​ ③sizeof的返回值类型是%zd。

​ ④sizeof返回的是无符号整数,可能是unsigned int,unsigned long或者unsigned long long类型,对应的printf()占位符分别是%u、%lu、%llu。

例如:

#include <stdio.h>

int main()
{
	int i = 1;
	printf("%zd\n", i);
	printf("%zd\n", sizeof i);
	printf("%zd\n", sizeof(i));
	printf("%zd\n", sizeof(i + 2));//表达式不真实参与计算,只根据表达式类型得出大小
	printf("%zd\n", sizeof(int));
	return 0;
}
1
4
4
4
4

那么各种数据类型的长度又是多少呢?

int main()
{
	
	printf("%zd\n", sizeof(char));
	printf("%zd\n", sizeof (_Bool));
	printf("%zd\n", sizeof(int));
	printf("%zd\n", sizeof(short));
	printf("%zd\n", sizeof(long));
	printf("%zd\n", sizeof(long long));
	printf("%zd\n", sizeof(float));
	printf("%zd\n", sizeof(double));
	printf("%zd\n", sizeof(long double));


	return 0;
}

在VS2022 X64配置下输出:

1
1
4
2
4
8
4
8
8
1.6 长度类型操作符signed和unsigned

signed和unsigned关键字是修饰字符型和整型类型的。

signed关键字,表示一个类型带有正负号,只能表示0和正整数。对于int类型,默认带有正负号,即int等同于signed int。

unsigned关键字,表示一个类型不带有负号,只能表示正整数和0,例如:年龄。int类型也可以不带正负号,只表示非负整数,使用unsigned声明变量。

unsigned int a;
unsigned a;//两者等同

关于字符类型char,C语言默认是否带有正负号由系统决定,所以char不等同于unsigned char,可能是signed char,也可能是unsigned char。

signed char b;     //范围为-128到127
unsigned char b;   //范围为0到255

2.变量

语法形式:

在这里插入图片描述

初始化变量:在创建变量时给一个初始值。有时在编写程序时会强迫要求初始化,原因是什么呢?这就涉及到全局变量和局部变量的概念。

全局变量:在大括号外部定义的变量。

局部变量:在大括号内部定义的变量,只能在自己所在的局部范围内使用。

int i = 0;   //全局变量

int main()
{
    int i = 1;   //局部变量
    printf("%d\n",i);
    
    return 0;
}
1

我们可以发现,当局部变量与全局变量名称相同时,局部变量优先使用。

解答上面的问题,为什么在编写程序时会强迫要求初始化,是因为局部变量不初始化默认值时随机值,全局变量不初始化默认值为0。

以上是数据类型与变量的基本知识,操作符相关内容会写在下一期。欢迎大家交流指正,别忘了点赞收藏评论哦💕💕

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值