C语言中的数据类型和变量(摸)

闲聊:最近看到战锤系列的故事挺上头其中最多的一句话是这样说,

-------------你的行为是否正义,取决于你的坚定程度------神圣泰拉

(忘了提到了,上面这句话很容易被断章取义的理解,若是你想到达这句话原委的殿堂,还请你亲自踏上前往它的路············也就是去看看我说的战锤故事啦,我这算不算侧面分享了它呢,原视频能在billbill上找到,战锤讲的不错,嗯)

这难道就是语言的魅力吗,真帅,恕我没文化说不出几句足以震撼人心的话,

在下不才,倒是C语言能有的没的讲评讲评

1、字符类型介绍(紧接着的是写法表示)

(暂时用到的简单写有以下一张图,可能还有需要补充的,就见仁见智了)(1)、整型------整数(2)、浮点型-------小数

float--------------单精度浮点型             (使用中论数据精度双精度更高,毕竟多了个小数点,结合实际使用)

double-----------双精度浮点型

long double-----取值范围更大的浮点型

(3)、字符型------字符

char

[signed]    char      //有符号的

unsigned  char      //无符号的

(4)、布尔类型------指定用来创建表示真假的变量

真,非0表示真

假,0表示假

布尔类型还需要额外补充

它的表达方式       _Bool       bool

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

布尔类型的变量取值:true和false

像是这样

#define bool _Bool
#define false 0
#define true 1

2、数据类型有长度

根据不同数据类型所拥有的不同长度所存储的数据长度不同

谈到这里有一个避不开的知识,那就是对sizeof的使用,

sizeof是一个操作数,也是操作符,专门用来计算其中操作数的长度,而操作数既可以是类型,也可以是变量表达式

sizeof(类型)
sizeof(表达式)

其中sizeof的单位是字节,也就是Byte

知识补充,计算机中的单位,其中1024=2^10如果sizeof后方操作数是表达式,那么表达式不会真正的参与运算,而是根据类型得出长度。从下面的比较中你就会理解表达式作为sizeof的后方操作数此时不是真正的计算,推算呢,不管是b还是3都是已知的int类型,占位4,但是最后数据反应到的a中,而a根据之前的图片我们定义为了short类型,它的占位是2。(就像是买菜,2块钱的菜,就算最后你掏出了10块钱,人也只收你2块钱)最后得出的长度就是2。

3、signed和unsigned

C语言中使用signed(我们通常叫有符号的)unsigned(无符号的)关键字修饰(只能修饰)字符型和整型

signed关键字,表示一个类型包含正负号,包含负值;unsigned关键字,表示该类型不带有正负号,只能表示0和正整数

对于int类型,默认是带有正负号的,也就是说int等同于signed int,下图帮助理解

signed int n;    //正数+负数
unsigned int n;  //正数包括0

整数变量申明为unsigned的好处是,同样的内存表示的能够表示的整数值扩大了一倍

这一次的例子是借鉴他人的

比如,16位的,signed short int 的取值范围是   -32768~32767,可以看到最大值是32767。我们把它定义为 unsigned  short int  的取值范围就变成了    0~65535,最大值增大到了65535。

补充,关于在使用sizeof时打印中使用"size_t"来指定

起因是为了解决sizeof的多种多样的返回值类型,确定最后是我们需要的返回值

size_t是一种无符号的整形,在使用中,sizeof可能在不指定的情况下有多种返回值格式,如下

unsigned int
unsigned long
unsigned long long

解决方法,确定类型的方法就是使用size_t,用来统一表示sizeof的返回值类型对应当前系统的sizeof的返回值类型,可能就是以上列出的三种之一

注意:明白了大致的数据类型的取值范围再去使用,可以去查询相关范围,这里我们不再提供,显得冗长

4、变量

(这一节包含的东西零零碎碎)

(1)、创建:

类型的最后作用便是用来创建变量(变量就是变化的量,常量就是不会变化的量)

标准格式我们列出

就上图还有补充,格外注意,下面这第一张图是变量定义后的初始化

int main()
{
    int age = 0;//这里我们再进一步,赋值,这就完成了初始化
    char asfdsfda = 'u'; 也是赋值,只是因为是字符所以要加单引号
    float fasfdaf = 9.9f;           float类型与double类型,系统默认为double类型,若要使用            
                                         float类型需要在赋值后在其后加一个(f)
    double high = 8.8;

    return 0;
}

那么变量怎么变呢?这样

进行了两次更改,每一次都会输出,结果也不一样

(2)、变量的分类

2.1、全局变量                                2.2、局部变量

全局变量:在大括号外面定义的变量(它的使用范围更广,作用范围涉及整个工程)

局部变量:在大括号内部使用的变量(当然作用范围也只在括号内)

红色字体------查阅信息    紫色字体-------个人理解   黄色字体-------需要注意的部分

!>=<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值