一、数据类型
1)、数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量储存所占用的空间。
C中的类型有以下几种
C语言中的整数型和数学中的整数是一样的,基本整型简称整型,用int表示;短整型用short int表示,长整型用long int表示。那为什么要分为long int 和short int呢??这就是要说道内存了,内存和硬盘相比容量是很小的,所以要考虑内存节约的问题。比如数字10存放在4个字节的int就够了,但如果存放在long int(8个字节)就显得浪费空间了。
说到内存,每个数据类型都有它本身占多大的字节数
1byte(字节)=8个bit(位)
1 KB = 1024Byte(字节)
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
二、常量
C语言中的常量分为以下几种:·
· 字面常量
·const修饰的常变量
·#define 定义的标识符常量
·枚举常量
(1)、字面常量的种类:
1)、整型数值 如 22 33
2)、浮点型 如double类型的33.3
3)、字符串类型
4)、字符型
我们创建char类型的数组ch1和ch2,里面存放这abcdef的字符和字符串,我们输出会发现ch1还有中文乱码
我们想一想,这是为什么呢???所以我使用了调试,我们发现ch2中多了一个\0,我们就知道了\0是字符型结束的标志 ,而ch1出现了中文就可以理解为我们向计算机申请了一块内存,而ch1内存的后面我们不确定是什么,而ch2字符串后面是\0,当在不同的编译环境下,ch1就会形成不同的结果。
当然,我们也可以通过使用strlen函数来证明
这时就说明了由于ch1内存后面不知道什么时候遇到\0,所以是随机值,而ch2中有\0,所以打印出来的个数就是6
(2)、变量的作用域和声明周期
作用域: 所谓作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在所有代码文件中使用,有些变量只能在当前的文件中使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。
比如我们定义了全局变量a和局部变量a,我们在有效的区域中我们优先使用的是局部变量,{}就是我们的局部变量的作用域,出了{},就是全局变量起了作用
生命周期:即指的是程序在运行过程中,变量在内存中的从创建到销毁的生存期。
三、转义字符
1)、既然提到了字符,就不得不讲转义字符,转义字符就是转变意思。
转义字符(Escape Character)
是指在ASCII码和Unicode等字符集中的无法被键盘录入的字符
、被当作特殊用途而需要转换回它原来的意义的字符
。而转义字符
的转义
是指字符已经被转换了意义。
比如,当我们输出‘\a’,电脑就有叮的一声,代码如下
int main() { printf("\a"); return 0; }
通过这个输出这个例子,我们就可以发现\t \328是转义字符,算一个字符,所以输出的结果是14
四、操作符
1)、算数操作符
+ - * / %
在数学中x是乘法的意思,而在计算机中*是乘法的意思,/是除法的意思,得到是除数,%是取余,得到的是余数
比如我们定义了变量a和b,用a/b,和a%b分别得到的就是他们的除数和余数
2)、位操作符
<< 左移操作符
>> 右移操作符
ps:移动的只能是整数,不能使用浮点数
那么我们就不得不讲一讲原码,补码,反码了
为什么讲这个呢,因为在计算机中,一个整数在内存中存储的是补码!!!
我们定义了一个int类型的a变量,我们使用<<左操作符,就是a向左移动2位,就得到了a=6
又比如我们定义int类型的a变零,使用右操作符,就是补码向右移动2位,左边补0,就可以得知a>>1就是4
小故事:
程序猿:一般来说,一个寝室的长度应该是1~2个字节,因为里面一般住4~8个2b。
最后的附上一段话:
“选一个方向,定一个时间;剩下的只管努力与坚持,时间会给我们最后的答案”