各位看官好,这是鄙人写的第二份博客了。相较于第一次的青雉与局促,这一份博客是做出了相对多的准备。并未更多的涉及到了c语言的专业知识。那么接下来我就为各位看官简绍一下c语言中最常见的数据类型与变量。
目录:
<1>:数据类型的简绍
<2>:区分signed与unsigned
<3>:数据类型的区别
<4>:变量
<5>:运算操作符与赋值操作符
<6>:单目,双目操作符
1:数据类型的简绍
作为一个合格的码人,数据类型肯定是每天都有在使用的吧,那么接下来就简单简绍一下吧。1.整数类型(int):用于表示整数值,例如-1、0、1、2等等。
2.字符类型(char):用于表示单个字符,例如'a'、'b'等等,字长为1个字节。
3.字符串类型(string):用于表示一串字符,例如"hello world"、"abc123"等等
4.浮点数类型(float/double):用于表示带有小数部分的数值。float 是单精度浮点数,double是
双精度浮点数,它们可以表示的范围和精度不同。
5.数组类型(array):用于存储一组同类型的数据,例如[1,2,3]、["apple","banana","orange"]等等。
6.结构体类型(struct):用于自定义数据类型,可以包含多个不同类型的数据成员。
7.指针类型(pointer):用于表示内存中的地址,可以对变量进行直接的内存访问;指针它是一种
特殊的变量类型,用于存储变量的内存地址。指针变量可以指向任何类型的数据,包括基本数据
类型Q、数组、结构体、函数等。
8.枚举类型(enum):用于定义一组枚举常量,例如星期一到星期日、文件打开模式等。
9.函数类型(function):用于表示函数,可以将函数作为参数传递或返回函数作为返回值。
10.联合体类型(Union):用于存储不同类型的值的数据结构,只能同时保存其中的一个值。它的实现方式是使用一个特殊的枚举类型,枚举值可以存储不同类型的数据。
当然还有一个特殊的数据类型,它并不是像上述的那些类型一样,是可以有一个或多个成员的,它只是用于 用于表示真或假,只有两个值 true和false。所以我就它单独放在了最后,那就是布尔类型(bool)!
2:区分signed与unsigned
signed与unsigned可以先从表面上看,翻译过来一个是有签署的,一个是无签署的。这也可以看出signed与unsigned是对立的。两个是不可以同时对一个目标使用的。
在c语言中整数在存储单元中都是以补码形式存储的,存储单元中的第 1 个二进制位代表符号。整型变量的值的范围包括负数到正数。 但是在实际使用中,有符号位signed通常是会省略的。
在上述中有一个特殊就是,char类型的符号位是不确定的,是有符号位还是无符号位这个要以编译器来取决至于为什么,这个鄙人也不是太了解,但是char类型符号位的不确定却是事实,希望各位看官多留意。
3:数据类型的区别
接下来就是这些类型的区别了,我个人认为类型的区别最大莫过于字节占用的大小了,所以我就省略一下,用图片,以此更方便的观看:
4:变量
接下来就是变量。类型是用来创建变量的。什么是变量呢?C语言中把经常变化的值称为变量,不变的值称为常量。也就是说变化的就是变量不变的就是常亮。变量创建就是,数据类型+名字(名字自己取,但最好有意义,以便自己记忆,养成一个好的敲代码习惯)。在名字后面写一个=,=后面再加数字就是变量的初始化。
上面这个就是变量的创建,只需要数据类型然后空一格写名字就可以了。
这个就是变量的初始化,这个需要注意的是,初始化值要符合数据类型,不要埋头吭哧吭哧的一通写,运行的时候才发现问题,那可就麻烦了。所以,变量的基础是熟悉数据类型。
然后在变量中又有全局变量和局部变量之分。这个从字面上看,就知道他们包括的范围不一样,全局变量会比局部变量要大。这好比现在的货币一样。小日子到中国要想买我们国家的东西,必须用人民币进行交易,但是我们进口小日子可以选择人民币或者日元。我个人认为就是一个使用范围关系,局部变量使用范围较小,只有自己的那一部分可以使用。而全局变量就可以到处使用,但是经量不要多的使用全局变量,因为全局变量创建太多,可能会占用太多的内存,让你运行变慢。
5:运算操作符与赋值操作符
在写代码时候,一定会涉及到计算。C语言中为了方便运算,提供了一系列操作符,常见的也是大家耳熟能详的,比如加、减、乘、除等等。在c语言中操作符叫:算术操作符。分别是:+(加)-(减)*(乘)\\{除)%(取模)都是算数操作符。这里面乘和除与平常数学里面的书写格式不一,但是所想体现的效果是一样的。注:操作符也被叫做:运界符,是不同的运答符号但意思是一样的
这就是算数操作符的基本使用方法,乘除也是如此。但除法有一些注意事项,例如3/2应该等于1.5。但是如果你打印的话,会显示1。明明结果应该为1.5但是却为1这显然是有问题的,原因是整数相除会保留整数位,余数会省略掉所以也就是1了。解决方案就是打印的printf ("%d\ n"),变换为printf("%f\n")或者lf也可以和计算值中至少有一个数是小数,如下面图片
vs编译器会自动打印小数点后面5位数,如果你像限制的话,比如说打印2为小数你只需要,在格式化输出符号前面加 .数值(你想体现几位数就写几):
赋值操作符:在变量创建的时候给一个初始值叫初始化,在变量创建好后,再给一个值,这叫赋值。如:
c语言还可以连续赋值和复合赋值。连续赋值就是一次性给多个变量辅助如
但是要注意连续赋值是从右向左依次赋值的。并且连续赋值有时候不太好理解,还是建议分开写,这样代码的可读性才更好,也便于其他人来阅读代码。
这个就是复合赋值:对一个数进行自增、自减的操作。这样更方便代码的运行与书写。
单目与双目操作符,我们也可以从名字上看出一个是单数一个是双数。例如:赋值操作符int a=0 a= 20; 这个里面 =的左右两边有两个操作数,就叫双目操作符。
依照上面的双目操作符来看单目操作符就是只有一个操作数叫单目操作符。
这就是我今天想与各位看官分享的一些鄙见。如有不足,还望多包涵,并且劳驾评论区写一下