编程学习记录——第3课【初识C语言】
关键词static static作用于局部变量,改变了局部变量的储存类型,使局部变量的生命周期变长。 未被static修饰前,局部变量储存在内存中的栈区,修饰后,储存在静态区。 储存在静态区的变量出了它的作用域也不会被销毁,因此生命周期变长。 static作用于全局变量,改变了它的链接属性,未修饰前,项目内的所有源文件都可以使用该全局变量,修饰后,外部链接属性变成了内部链接属性,使其只能在本源文件中使用。 static修饰函数时类似于作用在全局变量,改变了其链接属性,其实只能在本源文件中使用。 指针 内存分为许多个内存单元,每个内存单元的单位是1字节(1字节=8比特=8个二级制位),由CPU生成虚拟地址,向每个内存单元分配地址,每一个地址对应着一个内存单元。指针变量是一个变量,与其他变量不同的是,指针变量中存储的是一个内存地址,他指向内存中的一个或几个单元。 地址的存放需要多大空间,指尖变量的大小就是多大, 一般情况下,32位机器产生32位虚拟地址空间,所以指尖变量的大小也就是32位,也就是4个字节,类似的64位机器中指针变量的大小应为8个字节。 指尖变量的使用: int a=10;int * pa =&a; 意味着取变量a的地址存入指针变量pa中; “ * ”,说明pa是指针变量,* pa前的int表明被对象类型是int。 指针变量的解引用: “ * ”为解引用操作符,*pa以为着指向在pa中储存的地址的对象,也就是变量a, *pa =20,意味着将变量a的值赋为20。 结构体 结构体是一种类型,用来描述复杂对象。 例 struct staff { char name; int age; char sex[3]; double income; } 表明创建了一个名为staff的数据类型; struct staff a={张三,25,男,6200.48} ,表明生成了一个类型为staff的变量a。 使用变量a: 例:a.name表示访问结构体中的name,“.”被称为结构体访问操作符。