3.变量
3.1变量基础
变量名由字母、数字、下划线组成,不能以数字开头,不能和C的关键字重名。
在程序运行时,变量占据存储空间的大小由其数据类型决定。
变量在内存空间中的首地址,称为变量的地址。
3.2变量说明
使用时,我们需要声明它们的存储类型和数据类型
一般形式:<存储类型> <数据类型 > <变量名> ;
<存储类型> 关键字是auto、register、static和extern默认的是auto
<数据类型> 基本数据类型,也可以是自定义数据类型
3.3存储类型
auto 默认的存储类型
auto说明的变量只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里。自动的销毁。(默认是随机值)
register(寄存器变量):
寄存器数量有限,所以依赖运行程序的机器。
寄存器变量不能取地址
static静态存储类型
静态存储类型的变量,既可以在函数体内,也可以在函数体外声明。(默认为0)
局部变量使用static修饰,有以下特点:
在内存中以固定地址存放的,而不是以堆栈方式存放
只要程序没结束,就不会随着说明它的程序段的结束而消失,它下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用存入的数值。
static修饰全局变量之后即使加了extern也无法使用!!!
extern
当变量在一个文件中的函数体外说明(全局变量),所有其他文件中的函数或程序段都可引用这个变量。
extern称为外部参照引用型,使用extern说明的变量是想引用在其它文件中函数体外部说明的变量。
4.运算符
4.1算数运算符
注意的点:
符号与变量之间建议增加空格避免错误
float/double不能取余
4.2关系运算符
4.3逻辑运算符
注意的点:
对应高中知识基本逻辑,与或非。
短路,例如或第一个是1的时候不会看第二个表达式 同样的与前面是0后面不会再执行
4.4位运算符
相关的练习和理解可以看看英雄哥的:《寒假算法集训》(专题三)位运算
做完会有更深的理解。
4.5赋值运算符
一般形式:
<左值表达式> = <右值表达式>
声明和赋值一起完成:
<变量> <操作符>= <表达式>
一些符合运算符
4.6特殊运算符
三目运算符
<表达式1> ? <表达式2> : <表达式3>
结果就是如果表达式1为True则返回表达式2,否则返回表达式3
,表达式
float x=10.5, y=1.8, z=0;
一般用于赋值,其他的语句一般不能用逗号!!!
从左到右执行
sizeof运算符
sizeof(<类型或变量名>)
只针对数据类型,不针对变量!
对指针的操作你会返回一个指针的长度 是错误的!!
4.7优先级