常量与变量
常量:在程序运行期间其值不能发生改变
整型常量
实型常量
字符型常量
字符串常量
变量:在程序运行中其值可以改变的量。
变量必须先定义,后使用,在创建时需要指出变量的数据类型与变量的名称,一般放在函数的开头部分
习惯上使用小写字母表示,以增加可读性
变量在参与运算之前必须先进行赋值,在为赋值的情况下参与运算或输出是无意义的
通过变量名引用变量值
分别赋值
被赋值的变量必须是单个变量,且必须在赋值运算符的左边
变量可被多次赋值,但是每次赋值后,变量的值都会被新值覆盖
当表达式值的类型与被赋值变量的类型不一致时,系统会自动的将表达式的值转换为被赋值变量的数据类型,然后在赋值给变量
赋值语法:变量 = 表达式/值
数据类型
关键字
最初K&R给出的关键字 |
C90增加的关键字 |
C99增加的关键字 |
int |
signed |
_Bool |
long |
void |
_Complex |
short |
|
_Imaginary |
unsigned |
|
|
char |
|
|
float |
|
|
double |
|
|
数据类型解释
int类型(可与long、short、unsigned配合使用)
实型变量
float 单精度
double 双精度
char 字符型 赋值:变量名=’值’ 注意值只能为单个字符
在输出时,一个字符型数据既可以按字符形式输出,也允许按整型形式输出
允许对字符数据进行算数运算,此时就是对他们的ASCII码值进行算数运算
_Bool 布尔型
复数类型前面的关键字表示复数的实部,后为虚部
float _Complex
double _Complex
long double _Complex
虚数类型
float _Imaginary
double _Imaginary
long double_Imaginary
注意:可利用typedef说明一种新的类型名 如unsigned short int 这样的数据类型在实际使用中,输入比较麻烦,因此可利用typedef关键字为其定义一个别名
语法格式 typedef 原类型名 新类型名;
类型转换 运算时,可能会有不同之间的数据类型进行运算,此时可进行类型转换
隐式类型转换 由编译系统自动完成
参与运算的数据类型不同时,先转换为同一类型,然后运算
转换象数据长度增加的方向进行,以保证不降低精度
char型和short型参与运算时,将其先转换为int型
在赋值运算中,赋值运算符两边的数据类型不同时,赋值运算符右边的数据类型转换为左边的数据类型。如果左边的数据类型的长度小于右边,则将丢失一部分数据,因此会降低精度,丢失的部分按四舍五入向前舍入
类型转换的级别从高到低为long double、double、float、unsigned long long、long long、unsigned long、long、unsigned int、int。注意当long和int的大小相同时,unsigned int的级别比long高
强制(显式)类型转换
可以利用强制类型转换运算符将一个表达式的值转换为所需的类型。
语法格式:(类型名)(表达式)
注意:在进行强制类型转换得到的是一个所需类型的中间量,操作数的值并不发生改变,改变的只是表达式值的类型;即,原表达式的类型为发生变化
下节链接 https://blog.csdn.net/chaolingw/article/details/79826696