1,c语言运算符
运算符的优先级和结合顺序
要学懂c语言里的运算符,首先要搞清楚运算符的优先级,c中的运算符大体上分为:
算术运算符,逻辑运算符和赋值运算符。
大体上我们认为运算符的优先级为:算术>逻辑>赋值
。
对于同级的运算符的我们则需要根据齐结合顺序的特性来计算出具体的值。
2,变量
要学懂变量,我们首先要明白什么是变量?我们都知道在c语言中存储数据的时候,需要知道我们把数据存储到内存中的哪一块,以方便我们对这些数据的使用,因此我们给
这块内存区域取了一个别名,这个别名就是变量。
那么,学习一个变量要了解该变量的些什么就显而易见了:一般情况我们需要知道该变量的以下的一些特性:
1.变量的存储类型。 2.变量的生命周期。 3.变量的作用域。
首先说说变量的存储类型吧:c为我们提供了4种变量的存储的类型,分别为:
1,auto(自动存储类型)
2,extern(外部存储类型)
3,static(静态存储类型)
4,register(寄存器存储类型)
auto属于自动存储类型,一般不做修饰的时候默认的存储类型就是auto。
extern 一般来说用该关键字修饰的变量都是在别的文件被定义的。
static:静态存储类型,主要用来延长其生命周期,但是一旦被static修饰以后,该变量只能初始化一次。
register:一旦被该关键字修饰以后,变量会常驻cpu的计算器中的寄存器中,少了数据从内存到寄存器的步骤,一般循环的循环变量常使用register来修饰。
接着说说变量的生命周期:生命周期简单来说就是指的是变量在何时消亡。
我们知道一个进程在运行的时候,系统会为该进程分配4GB的虚拟地址空间,然后这4GB的虚拟地址空间又会被分为4个段,这4个段分别为:代码段,数据段,堆段,和栈段。
变量的生命周期和变量所在的段有关,通常我们认为:局部变量,函数的形参,存放在栈中,当函数调用结束以后,就会被系统回收。
使用指针动态开辟出来的空间,存放在堆中。其需要程序员来进行手动释放。
常量数据,静态数据和全局变量我们长认为其存放在数据段中,其生命周期和进程一样长。
代码段段存放的我们的代码。
变量的作用域:指的是变量在什么范围内可以生效。