目的:
1.熟悉指针声明和使用
2.指针使用的意义
3.指针和数组之间的关系
4.结构体的定义和使用
5.文件的使用
技术:
1.指针的使用的意义: 地址 内存空间 解决跨区域(不同作用域 不同代码块)之间的数据交互
2.指针中的符号:
‘*’表示:
1.声明定义变量的时候 表示一个指针变量 int *a(定义一个指针变量1指向的内存空间只能存放整数
注意:定义指针变量一定要给初值,不确定就给NULL NULL指向内存的起始地址即0x00
eg: int *a=b(不行)指针变量只能存地址不能存具体值
float b=20;int c=10;
int *a=&b(不行)整形指针只能存整形数据的地址
int *a=&c(正确)
2.除了定义指针变量之外都是访问某个地址的值
eg: int *a=&c; 定义指针变量
*a=21;访问a地址里面的数据,赋值为21
‘&’取某个变量的地址
3.指针变量占据八个字节
4.指针与数组之间的关系:
数组名并不是一个变量 没有分配内存空间
指针变量是有内存空间的
定义一个数组就分配内存空间
定义一个指针变量只为变量本身分配8个字节内存空间无法存值因为没有为它分批可以存储的内存空间
5.结构体:是一种复合数据类型
6.文件的打开中的一些字母意思:
r 只读 文件不存在就报错 从头开始读
w 只写 文件不存在就创建 从头开始写
a 只写 从末尾开始写
r+ w+ a+ 可读可写
技术的使用:
1.给指针指向的区域赋值
a.指针变量已经指向某块区域
int a3=10;
int *pa=&a3;
*pa=30;
b.指针指向一个数组
int num2[10];
int *pb=num2;
*(pb+0)=20;等价于下面的
pb[0]=20;
c.动态分布内存malloc realloc
上面两种指向的内存都是别人的,希望分配一个属于自己的内存空间
自己分配的内存空间必须自己释放
realloc 必须是之前使用malloc分配过的系统分布的内存是不能使用realloc的
malloc方法:
char *pName=malloc(10*sizeof(char));
判断分配是否成功
if(pName==NULL){
return 0;
}
pName[0]='j';
pName[1]='q';
pName=realloc(pName,*sizeof(char))
pName[2]='k';
printf("%s",pName);
用完后释放内存
free(pName);
2.结构体的定义:
3.文件的打开
4.写入数据
fputs("abc", fp);
5.读取数据
6.关闭数据
fclose(fp);
实际使用:
心得:
在之前学习C语言中没有搞懂指针的使用在上过课之后总算是了解了一点,还有总算是知道了文件的怎么样使用以前老师讲的时候都是一脸懵的在自己动手过后总算是知道了怎么样去使用不过在C语言里面还是不了解链表的使用感觉听起课来也是不懂,明天休息一天我想将这三天学的知识在看一遍代码在自己想在重新写一次争取全部都能够了解透彻。