一、变量
C语言中把用来存放数据且值不固定的量称为变量,值固定的量称为常量
1.变量的创建
int a = 0;//数据类型 + 变量名(标识符)
= 叫做赋值符,赋值是一个动作而不是一种关系,表示把左边的值赋给右边;
变量在创建时被赋值叫做初始化;
上面的例子就是说:创建了一个变量a,它的类型是int,初始化为0。
2.变量命名注意点
变量名可以由字母,数字,下划线组成,但数字不能在开头;
变量名长度最好不要超过8个字符,这是因为在一些编译器中,变量名有效位只有8位,也就是说当两个很长的变量前8位相同时,编译器会认为是同一个变量;
变量命名严格区分大小写,如amount和Amount就是两个不同的变量;
变量命名要能够见名知意。
3.变量的分类(局部变量和全局变量)
int b = 0;//全局变量
int main()
{
int a = 3;//局部变量
return 0;
}
局部变量就是在{}里面的变量,而全局变量就是在{}外面的变量;
变量起作用的范围叫做作用域,变量从创建到出作用域被销毁的这一段时间叫做变量的生命周期;
局部变量的作用域就是{}里面的范围,全局变量的作用域是整个工程(项目)。
注意:如果全局变量和局部变量名字相同,局部变量优先使用
4.内存区域简单划分
栈区:局部变量,函数参数
堆区:动态内存管理
静态区:全局变量,静态变量
二、数据类型介绍(目前主要介绍内置类型)
C语言中的数据是有类型的数据
内置类型:整型,字符型,浮点型,布尔类型
自定义类型:数组,结构体(struct),枚举(enum),联合体(union)
1.整型(整数类型)
除了int以外其他的整型后面都有一个int被省略
short 短整型
int 十进制整型
long 长整型
long long 更长整型
整型又分为有符号的和无符号的两种,即是否可以表示负数之分。以上都是有符号的整型,省略了signed,如(signed) short;无符号的整型前面必须加上unsigned修饰,无符号整型不能表示负数
为什么整型分这么多种?
不同的整型存储数据的范围有所不同。
就如:short存储的范围比int小;
而有无符号之分,拿short和unsigned short比较,short表示的范围是-32768~32767而unsigned short表示的范围是0~65535
存储数据的范围又和什么有关呢?
数据类型规定的数据的长度,即类型长度
2.类型长度计算—sizeof操作符
sizeof是一个关键字,用来计算类型长度,单位是字节
关键字:
C语言中保留了一批固定名字的符号又称保留字,关键字都有特殊的意义,不能自己创建,且不能用关键字命名变量
常见的关键字:auto、break、 case、char、const、continue、default、do、double、else、 enum 、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while
存储单位字节相关换算
bite比特位 Byte字节 1Byte=8bite 1KB=1024Byte
sizeof操作符的操作数可以是类型,也可以是表达式或变量
sizeof里面的表达式不参与计算
printf中的print为打印的意思,f是英文format,中文意思格式化,这就意味着打印是有一定格式的
双引号" "内部的符号%zd叫占位符,起到格式占位的作用,表示该位置有输出,而输出的值就是逗号后面的值,即逗号后面的值要代入到占位符被输出
sizeof计算类型长度,其运算结果的值是size_t类型,相对应的占位符是%zd
int类型相对应的占位符是%d
short类型相对应的占位符是%hd
long类型相对应的占位符是%ld
3.字符型
char
signed char
unsigned char
C语言规定char默认是否有正负号,由当前系统决定
char ch = 'a'
创建了一个变量ch,它的类型是char,初始化为a
字符要用单引号' '引起来
char类型相对应占位符是%c
一个字符有类型,那么一串字符(即字符串)有没有字符串类型?
没有字符串类型,但字符串也有相对应的占位符,是%s
字符串要放到双引号里面
4.浮点型
float单精度浮点数
double双精度浮点数
C语言中把带小数点的数称为浮点数,float和double的区别是,double类型的小数精度更高
float相对应的占位符是%f
double相对应的占位符是%lf
float a = 3.4f;
//一些编译器默认小数为double类型,所以在float类型的小数后面加上f
5.布尔类型
_Bool或者bool
C语言一开始没有布尔类型,而是用0表示假,非0表示真,在C99中引入了布尔类型,专门表示真假
布尔类型的使用得包含头文件<stdbool.h>
布尔类型的取值为true或者false
布尔类型的值打印用%d
_Bool flag = true;
//flag为真,1表示真,输出结果为1