闲聊:最近看到战锤系列的故事挺上头其中最多的一句话是这样说,
-------------你的行为是否正义,取决于你的坚定程度------神圣泰拉
(忘了提到了,上面这句话很容易被断章取义的理解,若是你想到达这句话原委的殿堂,还请你亲自踏上前往它的路············也就是去看看我说的战锤故事啦,我这算不算侧面分享了它呢,原视频能在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、局部变量
全局变量:在大括号外面定义的变量(它的使用范围更广,作用范围涉及整个工程)
局部变量:在大括号内部使用的变量(当然作用范围也只在括号内)
红色字体------查阅信息 紫色字体-------个人理解 黄色字体-------需要注意的部分
!>=<