学习目标:
必备Linux命令和C语言基础学习内容:
八、数据类型 九、常量 十、变量 十一、运算符学习时间:
1day学习产出:
知识点
八、数据类型
1、数据类型的分类
1)、基本类型
(1)、整型 (int)
i)、int:4个字节;
ii)、signed int:4个字节
iii)、unsigned int:4个字节;
iv)、short int:2个字节;
v)、long int:4个字节;
vi)、long long:8个字节;
(2)、字符型 (char)
i)、char:一个字节;[0,255]
ii)、signed char:有符号字符型 1个字节[-128,127];
iii)、unsigned char:无符号字节 1个字节[0,255];
(3)、逻辑类型(bool型):
1个字节;
不是基本数据类型,需要包含在<stdbool.h>中;
值域:true(为0),false(非0);
(4)、实型(float,double)
i)、float:单精度实型;
ii)、double:双精度实型;
(5)、枚举类型
1)、定义格式:
enum 枚举名{
枚举值表;
};
2)、枚举类型的使用
enum 枚举名 变量名;
变量名=枚举值;
2)、构造类型
(1)、数组
(2)、结构体:struct
(3)、共用体:union
*共用体,又称联合体,即不同的数据类型可以使用共同的存储区域;
*定义格式:
union 共用体名
{
成员列表;
};
(4)、位域
*位域又称位段,是把一个字节中的二进制划分为几个不同的位域,并说明每一个位域分位数;
**定义格式:
struct 位域结构名{
位域列表;
};
其中位域列表的形式是:类型说明符 位域名 :位域长度
*例如:
struct dada{
unsigned int a:2;
unsigned int b:3;
unsigned int c:3;
};
*需要注意的问题:
/各位域必须存储在同一个字节中;,不能跨两个字节;
/位域占用的位数不能超过8个二进制位;
/允许位域无域名;
*位域的使用:
位域变量名.位域名;
3)、指针类型
4)、空类型:void
九、常量
1、基本数据类型的常量
常量是运行期间值不会改变的的数据。
1)、整型常量
整型常量即为整数;
例:int a=100;
2)、浮点常量
带有小数点;
例:float PI=3.14
3)、指数常量
例:float a=1.176e+10(表示1.176*10^10);
4)、字符常量
单引号括起来额字符;
例;char a='a';
5)、字符串常量
双引号括起来的一串字符来表示数据;以‘\0'结尾,占一个字节;
例:char ch[]={“hello world”};
6)、标识常量(宏常量)
标识常量是指用标识符代替常量的的常量;
例如:#define PI 3.14
易错点:宏在文件中是通过替换而不是运算;
例如:#define TWO 1+1
#define VALUE TWO*2//实际上VALUE=1+1*2=3,因此需要加cu上括号以访错误;
#define VALUE (TWO*2)//实际上VALUE=(1+1)*2=3,因此需要加上括号以访错误;
十、变量
1、变量基础
变量在程序中用变量名表示,变量由用户定义;
1)、变量的命名规则
(1)、由字母、下划线、数字组成。不能以数字开头;
(2)、变量在存储空间占据申明的数据类型大小;
2)、变量的申明
(1)、申明格式:
<存储类型> <数据类型> <变量名>
i)、<存储类型>
*auto:局部变量,只能在程序的某个范围内使用;不指明存储类型时默认为auto,值默认随机;
*register:寄存器变量,将变量放入CPU的寄存器中,这样可以加快程序的运行速度,如果申请不到寄存器系统就默认使用auto;不能用&取地址;
*static:静态存储类型变量;既可以在函数体内,也可以在函数体外申明,默认是0;
特点:*在内存中以固定地址存放,而不是以堆栈的形式存放;
*只要程序没结束,变量就不会被销毁;
*extern:外部参照引用型变量。
特点:*当变量在一个文件中的函数体外说明,所有其他文件中的函数或是程序段都可以引用这个变量。
2)、<数据类型>:包括基本数据类型和自定义数据类型;