学习目的
1.指针和结构体
2.实战:学生信息系统
学习过程:
指针被称为C语言的灵魂,认识并熟练运用指针是很有必要的。在学习完指针和结构体后,便可以着手开始写一个学生信息系统的程序,通过该项目实战能够将相关知识进行巩固。
技术
1.指针:和地址及内存密切相关,指针变量用来存储地址,通过指针可以进行间接访问。在我看来,指针和基本变量、函数均为表层使用,本质操作均是对于地址的。
1)使用指针可以解决跨区域(不同作用域 不同代码块)之间的数据交互问题,例如某函数要操作某一数据,可不通过返回值而运用指针来实现。
2)“*”符号在声明/定义变量的时候表示一个指针变量。
3)“*”符号在使用是表示访问“*”内地址所代表的值。
4)‘&’ 取某个变量的地址。
5)指针变量本身在内存里面占据8个字节内存空间。
eg:
int a =1; //定义普通变量
int *p; //定义指针变量
p = &a; //取a变量的地址,并将其赋值给p指针(指针指向a)
*p = 2; //采用简洁操作,更改a的值
注意:1>定义指针变量的时候一定要给初值,不确定就给NULL,不能出现“野指针”;NULL指向内存的起始地址。
2>指针变量只能存地址,不能存具体值,且指针存地址类型要与值类型相同。
3>数组和指针的差别在于,数组定义后即分配好了存值内存空间,而指针仅有自身的内存空间并无存值内存空间,且数组名不是一个变量,没有分配内存空间。
3.动态分配内存:自定义申请内存,常用函数为,malloc() realloc() free()
代码实现--动态分配内存注意:自己分配的内存空间必须自己释放,用free函数;普通变量的内存是系统自己分配的,所以系统自己负责释放。
4.结构体:是一种自定义的数据类型,可以包括多种基本数据类型。使用结构体可以解决某个变量含有多个描述参数的问题,比如,学生信息管理系统。
代码实现--定义结构体5.文件操作:在之前写的程序中,存储的数据在下一次重启程序时会刷新重置,为了能二次使用程序数据,这里用文件操作来完成。
代码实现--文件操作6.实战:学生信息系统
感悟
经过五天的C语言学习,我将大致的知识点系统的重塑了一遍,整理了一遍。在这个过程中,我发现,虽然困难重重,但是饶有乐趣,特别是苦思冥想许久的代码实现的那一瞬间。其实,知识的学习是其次的,更重要的是思维上的锻炼,这对后面的Android的开发是大有裨益的。C语言的航程已经告一段落,接下来,继续加油吧。
网友评论