一.常量
常量类型
(1)实型常量:指数形式如何判断是否正确:e/E前e/E后必有数,e/E后必为整数,而小数形式若小数点前或后为0可以省略不写如.15表示0.15,1.表示1.0,但是前后都为0时不可以直接用.代表0,会四舍五入。
(2)字符常量:
·普通字符:用单撇号括起来的一个字符。字符常量只能是一个字符,且存储在计算机的存储单元时以ASCII码(每一个字符唯一对应的一个整数)存储。
·转义字符:以’‘为开头的字符序列。意思是将\后的字符转换为另外的意义。当’'后为全数字且数字不超过三位时该转义字符代表了一个与该八进制码对应的字符。当’'后紧跟有一个’x’时,其后的数字代表了一个十六进制码对应的字符。
(3)字符串常量:
·用双撇号把若干字符括起来如"aaa"。
·字符常量传的的整型值,字符串常量传的是地址值。
(4)符号常量:利用#define指令。
二.变量
定义:一个有名字的具有特定属性的一个存储单元。
标识符
·变量必须先定义后使用。
·变量名字为标识符,标识符由字母,数字,下划线组成。其中第一个字符必须是字母或下划线。
变量类型
(1)整型变量
·以整数的补码形式存放在存储单元中。
·一字节为8位符号数。
·只有整型(包括字符型)数据可以加signed/unsigned修饰符。
·整型变量相除忽略小数点后的数字。
(2)字符型变量
·字符以代码(整数)形式存储,所以可看为整型的一种,但并不相同。
·当整型按字符型处理时,若整型数据大小超出了字符集对应字符的多少时,字符型变量会截取整型变量的低八位(相当于一个字节)进行转换。所以这两类型在一定的范围内可以准确的相互转换。
·字符型变量与其他类型变量运算时是其代码参与运算。
(3)实型变量
·当低精度变量与高精度变量一起运算时,最终结果的类型为高精度变量的类型。
·float类型有效数字为6位,double为15位。
·赋值左右精度不同时,右类型会先变为左类型再赋值。
(4)指针型变量
·变量是一个存储单元,每个单元都有一个地址。而此变量用来存放存储单元的地址。
·定义时每个变量前都必须要有星号(*)此时型号作为指针声明符,该指针变量指向的的变量类型为定义的类型名。
·使用时星号作为运算符。p为的值为地址,*p为地址上的值。
(5)数组类型
·数组第一个元素下标为0。
`多维数组第一维可省略不写,其他不可以。
·[]中得是常量表达式。
(6)结构体类型
·定义结构体后要有分号。
·不可嵌套定义相同结构体,但可定义同类型的指针。
三.运算
(1)定义时若连续定义
int a=b=c=10;//这样等于只定义了a一个变量
int a,b,c;a=b=c=10;则三个变量均赋值为10
(2)赋值运算时若连续赋值要留意每一次赋值后变量的值为新值。
int a=2;
a+=a*=a;//结果为8 先2*2=4后4+4=8
(3)++,–不能用于常量(如5)或表达式(如(a+b))之中。
(4)C合法整数:十进制,八进制,十六进制。
(5)逗号表达式若有括号括住,则整个表达式的值为最后算出来的值,前面其他算出来的值会被抛弃,逗号为第十五优先级比=(十四)还低。没有括号时如a=2,3,4;最终a=2。
(6)switch语句留意每个case后面是否需要break,case语句可以嵌套使用。
(7)左值(赋值运算符左边)必须为可改变的变量,不能是常量和表达式。
(8)逻辑运算符有短路特性,当前面的判断足以判断整个表达式时,后面的判断不会执行。