C语言学习
数据类型——基本类型
常量:在程序执行过程中,其值不能够被改变的值被称为常量
常量区分为不同的类型1、整型 100、1225、-54、0
2、实型 30.5515、521.5、-1503.54
3、字符型 ‘a’ 'b' 'c'(只能够有一个字符)
4、字符串 “asd” “dasdad”
变量:在程序运行过程中可以改变的值
变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到对应的内存地址,从该存储单元中读取数据
变量名的规定:C语言规定标识符只能够有字母、数字和下划线三种字符组成,且第一个字符必须为字母或者下划线,C语言是区别大小写的,变量名不能够和标识符相同
符号常量 #define 常量名 值或者表达式 (常量不可修改)
若常量修改则会报errorC2106,左操作数必须为左值
十六进制是以0x开头 八进制以0开头
十进制转化为二进制
将十进制数值除以二,直到余数为1或0,将每次的余数进行排列,从最后的余数为头部进行排列
eg:156 156(0) 78(0)39(1)19(1)9(1)4(0)2(0)1(1) 得到的二进制数为10011100
二进制转化为十六进制
每四位为一组,1-9 A-F,不满四位前面补零,eg:156(10011100) 得到的十六进制数为0x9C
二进制的四位 第一位2^3 第二位2^2 第三位2^1 第四位2^0
补码
补码的作用:计算机的cpu是无法做减法的,只能够做加法,其实cpu有一个单元叫做加法器,计算机所做的减法,乘法,除法,都是由科学家将其变成加法进行的正数为原码,负数为补码,eg:2 在计算机中的二进制存储为0000 0000 0000 0000 0000 0000 0000 0010, 而-2则为补码即原码取反加一 则为1111 1111 1111 1111 1111 1111 1111 1110(当最高位为1,其后面都为0的时候则,其补码和源码相同)
整型变量
类型 | 类型说明符 | 长度 | 数的长度 |
有符号基本整型 | (signed) int | 4字节 | -(2^31) — (2^31)-1 |
有符号短整型 | (signed) short(int) | 2字节 | -(2^15) — (2^15)-1 |
有符号长整型 | (signed) long(int) | 4字节(64位为8字节) | -(2^31) — (2^31)-1/-(2^63) — (2^63)-1 |
无符号短整型 | (unsigned) int | 4字节 | 0 —(2^32)-1 |
无符号短整型 | (unsigned) short(int) | 2字节 | 0 — 65535 |
无符号长整型 | (unsigned) long(int) | 4字节(64位为8字节) | 0 —(2^32)-1/ 0 —(2^64)-1 |
浮点型数据
小数形式 | 0.123 |
指数形式 | 3e-3代表的是3乘以10的-3次方,e代表的是10的每次可正可负 |
注意 | 字母e(E)之前必须要有数字,且e的后面必须为整数 |
浮点型变量
我们通过float关键字或者是double关键字进行浮点型变量定义,float类型占据4个字节大小的内存空间,double占据8个字节的空间,与整型数据存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分以及指数部分分别存储。指数部分部分采用规范化的指数形式,指数也有符号位
类型 | 位数 | 数的范围 | 有效数字 |
float | 32 | 10^-37 ~ 10^38 | 6~7位 |
double | 64 | 10^-307~10^308 | 15~16位 |
long double | 128 | 10^-4931~10^4932 | 18~19位 |
精度丢失
当数值超过浮点类型的有效数字的时候则会出现精度丢失
字符型常量
用单引号包含的一个字符属于字符型常量,且只能够包含一个字符,以‘\’开头的特殊字符被称为转义字符,字符型变量使用关键字char进行定义,占用1个字节大小的空间,一个字符常量存放到一个字符常量中,实际上不是将该字符的字型存储到内存中去,而是将该字符对应的ASII码值放到存储单元中去,一个字符数据既可以以字符的形式输出,也可以以整数的形式进行输出
正确示例 | ‘a’,' A','1',' ' |
错误示例 | ‘abc’,“a” |
转义字符 | \n换行 \t横向跳格 \r回车 \\反斜杠 \b退格 \0空字符 |
字符串常量
字符串是一对双撇号(双引号)括起来的字符序列,C语言规定:在每一个字符串常量的结尾加一个“字符串结束标记”,以此便于系统据此判断字符串是否结束。C规定以字符‘\0’作为字符串结束的标记
混合类型运算
字符型(char)、整型(包括int,short,long)、浮点型(包括float,double)可以进行混合运算。进行混合运算的时候,不同类型的数据要先转化成同一类型,然后进行运算,从短字节到长字节,这种类型的转换是由系统自动进行的,同时编译系统不会警告,如果反向运行的话,编译时编译器会有警告提醒
低 char、short ——>int
unsigned
long
高 double <——float
移位符>> << 是按照四位中最高位进行补位的
数值是按照四位进行计算的
(类型)强制类型转换,当左右两边类型不一致的时候编译器会报错