欢迎光临
我们一直在努力

数据类型和变量

前言

本篇主要讲解内置类,其他类型后面讲解

目录

前言

1. 数据类型

1. 1 整型

1. 2 浮点型

1. 3 字符型

1. 4 布尔型

2 signed和unsigned修饰符

3. 数据类型大小

3. 1 sizeof操作符

3 . 2 sizeof的返回值

4. 数据类型的表示范围

5. 变量

5. 1 变量的定义规则 

5. 2 变量的分类

5. 3 类型转换

5. 3 .1 低精度转高精度

5. 3 .2  强制类型转换

1. 数据类型

在C语言中提供了各种数据类型来描述生活中的数据

如用整型描述整数,浮点描述小数,字符型描述字符

1. 1 整型

short //短整型

int //整型

long [int] //长整型

long long [int] //更长的整型

1. 2 浮点型

float //单精度浮点型

double //双精度浮点型

long double //长双精度浮点型

1. 3 字符型

char //字符型

1. 4 布尔型

C 语言原来并没有为布尔值单独设置⼀个类型,通常非零为真

在C99,才设布尔类型来表示真假(true和false)

_bool //布尔类型

2 signed和unsigned修饰符

当我没有用修饰符定义内置的数据类型,它默认是unsigned修饰符修饰

unsigned修饰的类型为有符号类型有正有负

signed修饰的类型为无符号类型只有正数和零

3. 数据类型大小

上诉数据类型如整型有short、int、long等,他们的大小不同,表示的范围也不同,我们可用sizeof

操作符,来求出它们的大小,单位字节

sizeof(char)//1

sizeof(_Bool)//1

sizeof(short)//2

sizeof(int)//4

sizeof(long)//4

sizeof(long long)//8

sizeof(float)//4

sizeof(double)//8

sizeof(long double)//在vs上是8,在gcc上测试是16

%zd 是C语言中的一种格式化输出符,用于输出带符号的整数类型变量

3. 1 sizeof操作符

sizeof
是⼀个关键字,也是操作符,它的返回值是字节

sizeof
后边的表达式是不真实参与运算的,根据表达式的类型来得出大小

sizeof的操作符的操作数可以是类型,也可是变量或者表达式。

sizeof操作数如果不是类型,是表达式的时候,可以省略掉后边的括号

sizeof的返回值是size_t类型

sizeof( 类型 )
sizeof 表达式

3 . 2 sizeof的返回值

对于sizeof的返回值,C语言只规定是无符号整数,并没有规定具体的类型,其类型留给系自己去决定,不同操作系统的可能类型不同,这样不利于程序的可移植性。C语言创造size_t来统一sizeof的返回值。

4. 数据类型的表示范围

由上知晓数据类型大小,它和数据类型的表示范围有者必然的关系。

数据在内存中以二进制存储。以int为例,int的大小是4个字节,1个字节等于8个比特位,每个比特位可以表示0和1,其它的最高位是符号位,0表示为正数,1表示负数,那么int的范围是2^31~2^31 – 1。以此可以推出其它数据类型的范围(浮点型除外,这里不解释)

5. 变量

C语言把经常变化的量称变量

5. 1 变量的定义规则 

1.只能由字符(包括大写和小写)、数字和下划线(`_`)组成。

2. 不能以数字开头。

3.长度不能超过63个字符。

4.变量名中区分大小写的。

5. 变量名不能使⽤关键字。(如int,go..)

int a; //整型变量
char b; //字符变量
double c; //浮点型变量

在变量定义时个值叫做变量的初始化

int a = 1;
char b = "a";
double c = 1.2;

5. 2 变量的分类

变量分为全局变量和局部变量

#include <stdio.h>

int global = 2023;//全局变量

int main()
{

int local = 2018;//局部变量

return 0;
}

全局变量在静态区,局部变量在栈上,它们在内存的大致位置如下

5. 3 类型转换

5. 3 .1 低精度转高精度

低精度数据类型向高精度数据类型的转换通常是隐式的,由编译器自动完成,无需显式操作。这种转换不会导致数据丢失。如

char a = 12;
int b = a; //b = 12

5. 3 .2  强制类型转换

形如 (类型A)(变量名)= (类型A)(类型B数据)是强制类型转换。有时会丢失数据,如

浮点型转整型

double a = 1.22233;

int b = a; //​​直接截断小数部分。
//b为1;

赞(0)
未经允许不得转载:171主机测评 » 数据类型和变量
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址