基本数据类型与常量
常量:也具有一定的数据类型,由书写格式决定。
字面常量:整、浮点、字符、字符串
符号常量:使用一个标识符保存一个值,值在程序中不能改变,只读,大写,便于 区分
格式:#define 宏名 字符序列
一般写在头部,结尾没有分号
Const 数据类型 符号常量标识符=表达式;
Const 数据类型 符号常量标识符(表达式);
结尾必须有分号
注:1.整数前面加上0或者0x表示八进制或者是十六进制整数,0327,0x45F
- 每种数据类型默认是有符号整型,都有对应无符号整型,加上后缀U,300u
- 单引号只能扩起一个字符
- 转义字符同样占一个字节,如:‘\n’表示换行,‘\t’水平制表符‘\\’输出一个\
变量与赋值运算符
- 变量:保存计算值,用一个标识符表示或指明数据类型。
是计算机内存中的一个空间,可以存储和检索值
变量必须定义才能使用
初始化:在定义时直接给变量赋值;未初始化时随机值
包括:大小写字母、数字、下划线 数字不能作为开头
2.赋值运算符:= 双目运算符 左边:左值,对应一块内存空间,如变量名 右边:右值,常量、变量表达式 将右边的值保存到左边的变量中,右结合性
注:①运算符左边必须是一个值,不能是表达式。A=5是赋值表达式,3=5不是赋值表达式;数学中a+b=3在编译时出错,只能写成a=3-b
②如果左右两边数据类型不同,右值将自动转换为左值的数据类型,如int a=1.9; a=1,double b=3;b=3.0
③=的优先级仅仅高于,一般先计算右值,再按照左边的数据进行赋值
3.自增自减运算符:b=a++; b=a 1;a=a+1 2
C=++a; a=a+1; 2 c=a 2
注意:变量必须先定义后使用,一个局部范围内不能有重复的变量名,变量使用前必须有确定的值
算术运算符与算术表达式
1.五种基本算数运算符
2.算术表达式的优先级:*/%属于同一个优先级>+- 同一优先级的运算符组成的表达式按从左到右的顺序进行计算,用小括号可以改变运算顺序
3.复合赋值运算符:a+=2 先计算+=右边表达式的值,然后与左边变量a的值相加,最后将结果赋值给左边变量a 即:a+=2可以等价为 a=a+2 , a-=3
注:①进行算数运算要考虑溢出问题
②
③要考虑异常情况,除数不能为0,会提前结束程序的执行或显示异常结果。
类型转换:运算符两边的数据类型不同,系统会自动根据数据类型进行转换,按占用存储空间小(精度低)到占用存储空间大(精度高)的数据类型进行转换
- char自动转换为int,int自动转换为double
- 强制类型转换 C语言(int)b%5
C++ 语言int (b)%5
如果数据两边都是int型,结果也为int型,要保留小数,可以让运算中包括实型常量,修改表达式的值为,(a+b)/2.0或者1.0*(a+b)/2
输入与输出:用流(steam)的方式实现,有关流对象cin/cout和流运算符的定义在iostream当中,需要预处理命令。
- cin:①后面只能是变量,不能出现如b=或endl的输出信息②接收输入时,多个值之间可以用空格,制表符,回车符。整数或实数之间一定要有分隔符,字符之间可以有也可以没有分隔符。
- Cout:①表达式可以由变量、常量、运算符、函数调用等组成②用一对双引号“”包含0或多个字符组成的一个字符串常量,输出时原样输出
- sanf函数P38 ①格式:scanf(“格式化字符串”,地址表);
格式化字符串一般包含若干个格式化说明符,不包含其他字符
地址表中按顺序书写格式化说明符相匹配的地址变量
变量名前加&,用逗号隔开
②注意:如果包含格式化说明符之外的普通字符,用户必须原样输入该数据, 否则读取失败;对于字符型数据的接收,字符之间的空格、回车符会作为有效 字符接收
3.printf函数:①格式:printf(“格式化字符串”,参数表)
②格式化字符串包含两部分:正常字符按原样输出,格式化说明符以%开始, 后面跟一个或几个特定字符,用来确定输出内容格式。
③参数表时一系列需要输出的数,个数必须与格式化字符串所列出的输出参数个数保持一致,各参数之间用逗号隔开,并与格式化字符串中个参数的顺序对应。
4.NAN错误:表示无效数字,用isnan判断是否无效 如果是,返回非0;如果不是返回0